Für die Benennung von Tests sollte die selben Regeln gelten wie für die Benennung von Methodennamen, und zwar sollten sie möglichst beschreibend sein. Der Methodennamen soll beschreiben was getestet wird und zwar so, dass auch jemand der nicht viel von Programmierung versteht sofort weiß was hier getestet wird.
public function testUserIsActiveUser() {
$this->assertTrue($this->user->isActive()):
}
public function testUserNotActiveUser() {
$this->assertFalse($this->user->isActive()):
}
public function testUserHasBlog() {
$this->assertType('Blog', $this->user->getBlog()):
}und nicht sowas wie hier: Teste alles was so mit dem User zu tun hat
public function testUser() {
$this->assertTrue($this->user->isActive()):
$this->user->setIsActive(false);
$this->assertFalse($this->user->isActive()):
$this->assertType('Blog', $this->user->getBlog()):
}Dieser Fall ist noch einigermaßen übersichtlich, aber schon hier weiß man, bei fehlschlagenden Tests nicht was eigentlich nicht funktioniert, da einfach die Testmethode testUser fehlschlägt und nicht testUserIsActive.
Es ist also sehr wichtig nur eine Eigenschaft pro Testmethode zu testen und diese richtig zu benennen.
Hierfür gilt die Regel: Eine Testmethode für eine einfache Funktion und dann je ein weitere für eins der folgenden Keywords: if, while, for, foreach, AND, OR, case u.ä.


Vielen Dank für die vielen guten Posts zum Thema Unit Tests, da kann ich noch einiges draus lernen! Weiter so!
Viele Grüße, Sascha