Zur Erzeugung einer Objektinstanz dieser Klasse ist ein Datensatz in der entsprechenden Tabelle nötig, der die Testdaten enthält. Vor dem Anlegen der Dummy-Datensätze bildet der Aufruf der Methode setUp() aber zunächst eine Instanz des Testing-Frameworks. Die Methode createRecord() legt dann einen Dummy-Datensatz an, mit dessen Daten das Testobjekt instantiiert wird und allen folgenden Testfunktionen als „$this->fixture“ zur Verfügung steht.
private $fixture;
private $testingFramework;
public function setUp() {
$this->testingFramework = new tx_oelib_testingFramework('tx_seminars');
$uid = $this->testingFramework->createRecord(
'tx_seminars_sites',
array(
'title' => 'TEST Place 1',
'city' => 'Tokyo',
'country' => 'JP'
)
);
$this->fixture = new tx_seminars_place($uid);
}
Listing 2
Genau wie für den Aufbau der Testumgebung existiert auch eine Methode für deren Beendigung: Ziel der Funktion „tearDown()“ ist das Aufräumen nach dem Testen. Nach der Initialisierung des Aufräumvorgangs für das Testing-Framework zerstört die Methode unset() dann die erzeugten Objekte.
public function tearDown() {
$this->testingFramework->cleanUp();
unset($this->testingFramework);
unset($this->fixture);
}
Listing 3
Nachdem das Grundgerüst nun aufgebaut wurde, fehlen in dem Beispiel noch einige Testfunktionen. Im folgenden Code ist zu erkennen, wie in den Tests auf die vorbereitete Fixture zugegriffen wird.
public function testGetCity() {
$this->assertEquals(
'Tokyo',
$this->fixture->getCity()
);
}
public function testGetCountryIsoCode() {
$this->assertEquals(
'JP',
$this->fixture->getCountryIsoCode()
);
}
Listing 4
Bei nur zwei Tests wird der Vorteil der zentralen Erstellung von Fixtures nicht ganz so deutlich. Bei Klassen mit mehr als 100 Tests fällt es hingegen stark ins Gewicht, ob jeder einzelne Test selbst Dummy-Datensätze erstellen und Objekte instantiieren muss oder ob diese Funktionen an zentraler Stelle geregelt werden.






