So funktionieren datengetriebene Tests in SimplyVBUnit v3:
Phase A - Sammeln der Testdaten
- Bei der Instanziierung eines TestFixture wird die Methode AutoCollectTestCases() aufgerufen (falls das übergebene Objekt IFixture nicht implementiert)
- In TestFixture.AutoCollectTestCases wird für alle nicht parameterlosen Methoden ("Daten-Testmethoden") die Methode GetTestData() mit einem TestDataBuilder auf Basis des Namens der Methode aufgerufen.
- In dem in GetTestData() üblichen Switch wird für jeden Testdatensatz die Testdaten der Methode TestDataBuilder.Use() übergeben.
- In TestDataBuilder.Use() werden die Testdaten zwischengespeichert (Klasse TestData).
Phase B - Erzeugen der TestCases auf Basis der gesammelten Testdaten
- Bei der Instanziierung eines TestFixture wird nach dem Aufruf von AutoCollectTestCases() (siehe oben) die Methode BuildFixture() aufgerufen.
- In BuildFixture() erzeugt ein Aufruf der Methode CreateTestSuite() für jede Daten-Testmethode eine TestSuite. Diese TestSuiten werden dem TestFixture hinzugefügt.
- In CreateTestSuite() wird für jeden Testdatensatz ein TestCase der TestSuite hinzugefügt
- Beim Erzeugen des TestCases wird eine ParemetrizedMethod oder ParamAndResultMethod im TestCase erzeugt. Diesen Methoden werden die Testdaten mit übergeben.
Phase C - Ausführen der Tests auf Basis der Testdaten
- In TestCase.Run wird die zuvor angelegte Methode mit den entsprechenden Daten als Parameter aufgerufen.