Präfix für Testmethoden in Unit: "test" vs "sollte" [geschlossen]

8
___ answer4492058 ___

Ich würde sagen, das Präfix "test" ist einfach ein Holdover von den Vorannotationstagen, wenn dies erforderlich war. Ich würde vorschlagen, dass Sie einfach sinnvolle Namen für Ihre Testfälle verwenden (und das kann mit oder ohne "Test" bedeuten).

Ich bevorzuge es, die Testmethode so zu benennen, dass klar ist, was getestet wird. d. h.

%Vor%

Alle Testfälle befinden sich sowieso in einem Testverzeichnis und alle tatsächlichen Tests sind mit Anmerkungen versehen, so dass das Präfix "test" ziemlich redundant ist.

    
___ qstnhdr ___ Präfix für Testmethoden in Unit: "test" vs "sollte" [geschlossen] ___ answer4492041 ___

In der ursprünglichen JUnit mussten die Testmethoden %code% beginnen. Viele Frameworks für andere Sprachen haben diese Konvention kopiert. Obwohl es in JUnit nicht mehr der Fall ist, und obwohl andere Frameworks unterschiedlich sein können, sind die meisten Programmierer immer noch ziemlich vertraut mit Methoden, die z. %code% als Unit-Tests, daher denke ich, dass es gut ist, aus diesem Grund an der %code% -Konvention festzuhalten.

    
___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123junit ___ Beliebtes Unit-Testing-Framework für Java und Scala. Die neueste Version, JUnit 4, unterstützt Rich-Annotation-basierte und parametrisierte Tests. Erwägen Sie die Verwendung in Verbindung mit dem Java- oder Scala-Tag, um Ihren Anwendungsfall anzugeben. ___ tag123namingconventions ___ Namenskonventionen beziehen sich auf allgemeine Regeln für Namen, die Programmierkonstrukten wie Variablen und Methoden zugewiesen sind. Diese Konventionen erleichtern die Lesbarkeit und verbessern dadurch die Wartbarkeit von Code, indem sie die Benennungskonsistenz über verschiedene Module hinweg durchsetzen. ___ answer4492084 ___

Ich bevorzuge das Suffix %code% . Es ist möglich, dass Sie eine Methode mit dem Präfix %code% in Ihrem Projekt haben, z. %code% und Ihr Test würde dann %code% heißen, weil %code% einfach sehr seltsam aussehen würde.

Ich verwende auch das %code% Eclipse-Plugin, das automatisch eine Testmethode mit dem Präfix %code% erstellt, wenn ich %code% drücke. oder springe zur Testmethode, wenn ich %code% drücke. (Sie können zwar konfigurieren, welches Präfix verwendet wird.) Wenn Sie nicht mit Ihrer Benennung übereinstimmen, können automatisierte Tools wie MoreUnit Ihnen beim Testen nicht helfen.

    
___ tag123junit4 ___ Version 4 des beliebten Java Unit-Testframeworks von Junit ___ answer4492031 ___

Konsistenz ist wichtiger als korrekt bei der Benennung von Problemen. Wenn es eine Frage zu einem Projekt gibt, sollte das für das Projekt verantwortliche technische Mitglied die Kodierungspraktiken formal umreißen, so dass solche Probleme wertvolle Projektzeit nicht zerstören.

    
___ answer4492047 ___

Die 'Should'-Konvention ist auf den verhaltensorientierten Entwicklungsstil ausgerichtet.

Ich persönlich bevorzuge es wirklich, Tests in diesem Stil zu schreiben, da es Sie ermutigt, Tests zu schreiben, die Spezifikationen lesen und mehr mit dem Verhalten der Klasse übereinstimmen oder System, das Sie testen.

Wenn möglich, gehe ich manchmal einen Schritt weiter und gebe der Testklasse noch mehr Kontext mit ihrem Namen:

%Vor%

Indem Sie Ihre Klassen benennen und in diesem Spezifikations-Stil über sie nachdenken, können Sie eine Menge Hinweise dazu bekommen, welche Tests zu schreiben sind und in welcher Reihenfolge Sie sollten schreibe die Tests und mache sie grün.

Ja, "sollte" vs "test" ist nur ein Präfix und es ist wichtig, konsistent zu sein, aber diese Frage bezieht sich auch auf den Stil und die Denkweise, wie Sie Ihren Code testen und wählen, welche Tests geschrieben werden sollen. BDD hat eine Menge Wert, also schlage ich vor, weiter zu lesen und dies zu versuchen.

    
___
Victor Stafusa 20.12.2010, 17:03
quelle

5 Antworten

18

Die 'Should'-Konvention ist auf den verhaltensorientierten Entwicklungsstil ausgerichtet.

Ich persönlich bevorzuge es wirklich, Tests in diesem Stil zu schreiben, da es Sie ermutigt, Tests zu schreiben, die Spezifikationen lesen und mehr mit dem Verhalten der Klasse übereinstimmen oder System, das Sie testen.

Wenn möglich, gehe ich manchmal einen Schritt weiter und gebe der Testklasse noch mehr Kontext mit ihrem Namen:

%Vor%

Indem Sie Ihre Klassen benennen und in diesem Spezifikations-Stil über sie nachdenken, können Sie eine Menge Hinweise dazu bekommen, welche Tests zu schreiben sind und in welcher Reihenfolge Sie sollten schreibe die Tests und mache sie grün.

Ja, "sollte" vs "test" ist nur ein Präfix und es ist wichtig, konsistent zu sein, aber diese Frage bezieht sich auch auf den Stil und die Denkweise, wie Sie Ihren Code testen und wählen, welche Tests geschrieben werden sollen. BDD hat eine Menge Wert, also schlage ich vor, weiter zu lesen und dies zu versuchen.

    
Benjamin Wootton 20.12.2010, 17:13
quelle
5

Ich würde sagen, das Präfix "test" ist einfach ein Holdover von den Vorannotationstagen, wenn dies erforderlich war. Ich würde vorschlagen, dass Sie einfach sinnvolle Namen für Ihre Testfälle verwenden (und das kann mit oder ohne "Test" bedeuten).

Ich bevorzuge es, die Testmethode so zu benennen, dass klar ist, was getestet wird. d. h.

%Vor%

Alle Testfälle befinden sich sowieso in einem Testverzeichnis und alle tatsächlichen Tests sind mit Anmerkungen versehen, so dass das Präfix "test" ziemlich redundant ist.

    
Robin 20.12.2010 17:14
quelle
3

Konsistenz ist wichtiger als korrekt bei der Benennung von Problemen. Wenn es eine Frage zu einem Projekt gibt, sollte das für das Projekt verantwortliche technische Mitglied die Kodierungspraktiken formal umreißen, so dass solche Probleme wertvolle Projektzeit nicht zerstören.

    
codelark 20.12.2010 17:11
quelle
3

In der ursprünglichen JUnit mussten die Testmethoden test beginnen. Viele Frameworks für andere Sprachen haben diese Konvention kopiert. Obwohl es in JUnit nicht mehr der Fall ist, und obwohl andere Frameworks unterschiedlich sein können, sind die meisten Programmierer immer noch ziemlich vertraut mit Methoden, die z. testX als Unit-Tests, daher denke ich, dass es gut ist, aus diesem Grund an der test -Konvention festzuhalten.

    
Adrian Smith 20.12.2010 17:12
quelle
2

Ich bevorzuge das Suffix test . Es ist möglich, dass Sie eine Methode mit dem Präfix should in Ihrem Projekt haben, z. shouldBuy und Ihr Test würde dann testShouldBuy heißen, weil shouldShouldBuy einfach sehr seltsam aussehen würde.

Ich verwende auch das MoreUnit Eclipse-Plugin, das automatisch eine Testmethode mit dem Präfix test erstellt, wenn ich Ctrl+U drücke. oder springe zur Testmethode, wenn ich Ctrl+J drücke. (Sie können zwar konfigurieren, welches Präfix verwendet wird.) Wenn Sie nicht mit Ihrer Benennung übereinstimmen, können automatisierte Tools wie MoreUnit Ihnen beim Testen nicht helfen.

    
dogbane 20.12.2010 17:18
quelle