2011-01-11 7 views
4

Ich schreibe Komponententests mit PHPUnit.Welche Konsequenzen hat es, PHPUnit Testmethoden nicht mit camel case zu benennen?

Ich habe jetzt über 100 Methoden geschrieben.

Da es sich um einen Kohana Framework-Anwendung, habe ich seine Namenskonvention für die Prüfverfahren als auch, zum Beispiel:

function test_instance() 
{ 
    ... 
} 

function test_config() 
{ 
    ... 
} 

Alle meine Tests feinen in Eclipse laufen und von der Befehlszeile.

Ich brauche aber jetzt eine Setup Funktion zu verwenden, und erkennen, dass es funktioniert nur, wenn genannt:

function setUp() 
{ 
    ... 
} 

und nicht:

function set_up() 
{ 
    ... 
} 

Jetzt frage ich mich, wenn ich will haben irgendwelche Nachteile auf dem Weg, wenn ich nicht alle meine PHPUnit-Methoden umbenenne, so dass sie camel case, z Verwenden andere Tools, die PHPUnit verwenden, die Methodennamen in Camelcase-Notation?

Antwort

1

setUp und teardown sind genaue Namen, die übereinstimmen müssen, um erkannt zu werden. Tests müssen dagegen nur mit test beginnen. (Alle diese sind Groß-und Kleinschreibung.)

Abgesehen davon, keine Anforderungen an die Großschreibung/Layout des Rests der Benennung. (Na ja, Klassen können nicht mit Test beginnen, aber das ist es.)

12

Methodennamen in PHP sind nicht case-sensitive, so spielt es keine Rolle, ob Sie setup oder setUp und tearDown oder teardown verwenden. Sie dürfen jedoch nicht oder tear_down verwenden, da dies ein anderer Name ist. PHPUnit ruft zwischen jedem Test setUp und tearDown auf, um die Umgebung zu garantieren.

Per Konvention betrachtet PHPUnit jede Methode, die mit test beginnt, als Test. Sie können das Präfix weglassen, indem Sie die Annotation @test in der Methode DocBlock verwenden. PHPUnit wird CamelCased-Methodennamen beim Drucken von Berichten in voneinander entfernte Beschreibungen umwandeln, sodass testMethodDoesThis als "Method Does This" angezeigt wird.

CamelCase wirkt sich auch auf Tests aus, die mit der Anmerkung @testDox kommentiert sind.

Verwandte Themen