Man sollte sich auch von der Vorstellung lösen, dass es pro Klasse auch
genau nur einen TestCase geben muss/darf.
Wenn alle Test-Methode den gleichen Ausgangs-Zustand haben müssen, dann wird dieser in der Methode
SetUp
festgelegt. Gibt es jetzt Test-Methoden, die damit nichts anfangen können, dann ist das wohl ein anderer Fall, also gibt es einen neuen TestCase.
Ein TestCase ist (
oh Wunder) eine Klasse, mit allem was dazugehört. Die kann man auch
ableiten.
Da baut man sich z.B. eine Liste mit Test-Methoden auf und leitet von dieser Klasse ein paar weitere ab, weil man dort per
SetUp
einfach die gleichen Prüfungen auf andere Ausgang-Zustände loslassen möchte. Das könnte ja der Fall sein, wenn ich mehrere Interface-Implementierungen testen möchte. Die Tests sind die gleichen nur die konkreten Implementierungen eben nicht.
Delphi-Quellcode:
TTestIFoo = class( TTestCase )
private
Foo : IFoo;
published
procedure TestFoosBar; // testet das Interface
end;
TTestIFoo_TSimpleFoo = class( TTestIFoo )
protected
procedure SetUp;
end;
procedure TTestIFoo_TSimpleFoo.SetUp;
begin
Foo := TSimpleFoo.Create(); // erzeugt das Interface
end;