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