Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#1

DUnit - Vorgehensweise

  Alt 6. Mär 2015, 08:05
Hallo,

ich habe folgenden Testcase:

Delphi-Quellcode:
  TestTInBuffer = class(TTestCase)
  strict private
    FInBuffer: TInBuffer;
  public
    procedure SetUp; override;
    procedure TearDown; override;
  published
    procedure TestIsEmpty;
    procedure TestAddBuffer;
    procedure TestGetBuffer;
    procedure TestBufferUpperLimit;
    procedure TestBufferLowerLimit;
  end;
Im Testschritt TestAddBuffer füge ich dem fInBuffer einen Buffer hinzu.
Delphi-Quellcode:
procedure TestTInBuffer.TestAddBuffer;
var
  buffer: TBuffer;
begin
  buffer := TBuffer.Create;
  fInBuffer.add(buffer);
  checkEquals(false,fInBuffer.isEmpty);
end;
Im Testschritt TestGetBuffer will ich den Buffer wieder auslesen.
Delphi-Quellcode:
procedure TestTInBuffer.TestGetBuffer;
var
  buffer: TBuffer;
begin
  buffer := fInBuffer.get;
  checkEquals(true, assigned(buffer));
  buffer.Free;
end;
Wenn fInBuffer keinen Buffer enthält - gibt fInBuffer nil als Ergenis zurück.

Der Testschritt schlägt fehl.

Ändere ich den Testschritt so ab:
Delphi-Quellcode:
procedure TestTInBuffer.TestGetBuffer;
var
  buffer: TBuffer;
  buffer1: TBuffer;
begin
  buffer1 := TBuffer.create;
  fInBuffer.add(buffer1);
  buffer := fInBuffer.get;
  checkEquals(true, assigned(buffer));
  buffer.Free;
end;
Dann schägt der Testschritt nicht mehr fehl.

Frage: Warum ist das so? Bleiben Änderungen der Test-Klasse (hier fInBuffer) zwischen den einzelnen Testschritten nicht erhalten?

Grüße
Klaus
Klaus

Geändert von Klaus01 ( 6. Mär 2015 um 08:30 Uhr)
  Mit Zitat antworten Zitat