« Tutorials in phpDoc einbinden Sofort Umbenennen »

Benennung und Verantwortung von Testmethoden

2009 22 March

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.ä.


Bearbeiten
Feed für diesen Eintrag

1 Antwort über Benennung und Verantwortung von Testmethoden

  • 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

    #4074 | Kommentar von Sascha über September 1, 2011 2:44pm

Deine Angaben

Die Email Addresse wird nicht veröffentlicht

Dein Kommentar

Torsten Zander


 RSS Feed abonnieren

Twitter  Auf Twitter folgen

Posts

Blogrolls