208 Stimmen

Was sind einige gängige Namenskonventionen für Unit Tests?

Allgemein

  • Befolgen Sie die gleichen Standards für alle Tests.
  • Seien Sie sich darüber im Klaren, was jeder Testzustand ist.
  • Nennen Sie das erwartete Verhalten genau.

Beispiele

1) Methodenname_StateUnderTest_ExpectedBehavior

Public void Sum_NegativeNumberAs1stParam_ExceptionThrown() 

Public void Sum_NegativeNumberAs2ndParam_ExceptionThrown () 

Public void Sum_simpleValues_Calculated ()

Quelle: Benennungsstandards für Unit Tests

2) Jedes Wort durch Unterstreichung trennen

Public void Sum_Negative_Number_As_1st_Param_Exception_Thrown() 

Public void Sum_Negative_Number_As_2nd_Param_Exception_Thrown () 

Public void Sum_Simple_Values_Calculated ()

Andere

  • Beenden Sie Methodennamen mit Test
  • Methodennamen mit Klassennamen beginnen

0 Stimmen

-3voto

Munger Punkte 43

Solange Sie sich an eine einzige Praxis halten, spielt das keine große Rolle. Im Allgemeinen schreibe ich einen einzigen Einheitstest für eine Methode, der alle Variationen für eine Methode abdeckt (ich habe einfache Methoden), und schreibe dann komplexere Testsätze für Methoden, die dies erfordern. Meine Benennungsstruktur ist daher in der Regel test (ein Überbleibsel von JUnit 3).

-7voto

user566399 Punkte 1

Ich verwende ein 'T' als Präfix für Test-Namensräume, Klassen und Methoden.

Ich versuche, ordentlich zu sein und Ordner zu erstellen, die die Namensräume replizieren, dann einen Testordner oder ein separates Projekt für die Tests zu erstellen und die Produktionsstruktur für die grundlegenden Tests zu replizieren:

AProj
   Objects
      AnObj
         AProp
   Misc
      Functions
         AFunc
   Tests
      TObjects
         TAnObj
            TAnObjsAreEqualUnderCondition
      TMisc
         TFunctions
            TFuncBehavesUnderCondition

Ich kann leicht erkennen, dass es sich um einen Test handelt, ich weiß genau, auf welchen ursprünglichen Code er sich bezieht (wenn man das nicht herausfinden kann, ist der Test sowieso zu kompliziert).

Es sieht genauso aus wie die Namenskonvention für Schnittstellen (ich meine, man kommt nicht durcheinander mit Dingen, die mit 'I' beginnen, und auch nicht mit 'T').

Es ist einfach, mit oder ohne die Tests zu kompilieren.

Theoretisch ist das gut, und für kleine Projekte funktioniert es auch ganz gut.

3 Stimmen

Interessanter Ansatz. Einige Leute mögen argumentieren, dass das T-Präfix mit den Konventionen, die man in Generika verwendet (z.B. func(T1, T2, TResult)), in Konflikt steht, aber mir persönlich ist das egal, solange es einen Konsens im Team gibt. Die Namen sind kurz, was die Dinge auch lesbarer macht.

0 Stimmen

Zu ungarisch (Notation) für mich. Auch, ad stung angegeben, Präfix T ist für generische Typ-Parameter verwendet.

0 Stimmen

Ich stimme zu, die ungarische Notation wurde abgeschafft, und wegen des Konflikts mit standardmäßigen generischen Typparametern sehe ich keine Ausnahme, die in diesem Fall gilt (wie bei Schnittstellen).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X