Wie organisiert man am besten die Tests die man für phpUnit erstellt? Am besten organisiert man die Testklassen in der selben Ordnerstruktur wie die zu testenden Klassen. Bei mir kommen z.B. alle Tests in einen Unterordner names /tests
. ab da folgen die Testklassen der selben Struktur wie das zu testende System.
1 2 3 4 5 |
# zu testende Klasse /framework/src/core/db/DataAccess.php # Testklasse /framework/tests/core/db/DataAccessTest.php |
Dies und Das zu PHPUnit
Die wichtigsten Assert Methoden
Eine Komplette Referenz der Assert Methoden für die PHPUnit v4.5 ist hier zu finden.
Assert Methode | Beschreibung |
---|---|
$this->assertTrue($bool); / $this->assertFalse($bool); |
prüft, ob ein Wert true oder false ist. |
$this->assertEquals($expected, $actual); |
Vergleicht auf ein erwartetes Ergebnis. |
$this->assertGreaterThan($expected, $actual); $this->assertLessThan($expected, $actual); $this->assertGreaterThanOrEqual($expected, $actual); $this->assertLessThanOrEqual($expected, $actual); |
Methoden um zu vergleichen ob etwas größer/kleiner/gleich ist. |
$this->assertNotNull($var); |
Assert Methoden für Arrays
Assert Methode | Beschreibung | Beispiele |
---|---|---|
$this->assertArrayHasKey($key, $array, $message = ''); |
Asserts that an array has a specified key. | |
$this->assertArrayNotHasKey($key, $array, $message = ''); |
Asserts that an array does not have a specified key. | |
$this->assertContains("Hallo", $string); |
Asserts that an array does not have a specified key. |
Assert Methoden für Strings
Assert Methoden für JSON
Assert Methoden für Dateisystem
Assert Methode | Beschreibung | Beispiele |
---|---|---|
$this->assertFileExists(); $this->assertFileNotExists(); |
Prüfen, ob eine Datei existiert oder nicht existiert . |
Vorlage einer Leeren Test Klasse
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
class LeerTest extends PHPUnit_Framework_TestCase { var $foobar; /** * Diese Methode wird aufgerufen bevor die Testmethoden ausgeführt wurden. */ function setUp() { $this->foobar = "Hallo"; } /** * Diese Methode wird aufgerufen wenn alle Testmethoden ausgeführt wurden. */ function tearDown() { unset($this->foobar); } /** * Der erste Test */ function FirstTest($name) { $this->assertEquals('IST', 'ERWARTET', 'Dies ist eine Nachricht'); } } |
1 |
$tes->hallo =""; |