2013-12-11 22 views
14

Ich habe PEP 8 -- Style Guide for Python Code und PEP8 -- Advanced Usage nach Hinweisen auf, wie meine Testklassen benannt werden. Dies wird jedoch nie auf beiden Seiten erwähnt, ebenso wie auf vielen anderen Seiten, die ich angeschaut habe, wie die unitest-Seite in der Python-Dokumentation. Der einzige konsistente Stil, den ich sehe, ist "CapWords". In der Unittest-Dokumentation finden Sie Beispiele für TestSequenceFunctions sowie DefaultWidgetSizeTestCase.PEP8 Namenskonvention für Testklassen

Was ich herausfinden möchte ist, ob "Name" Test oder Test "Name" verwendet werden soll. Methoden verwenden test_ "name" und das ist ziemlich etabliert. Was Klassen betrifft, kämpfe ich um eine Konvention, wenn es eine gibt.

Würde mich über die Hilfe des Forums freuen.

Antwort

9

Die documentation for unittest schlägt vor, z.B .:

class TestSequenceFunctions(unittest.TestCase): 

    def test_shuffle(self): 
     ... 

    def test_choice(self): 
     ... 

kommentieren

Die drei Einzeltests mit Methoden definiert werden, deren Namen mit den Buchstaben beginnen test. Diese Namenskonvention informiert den Testläufer darüber, welche Methoden Tests darstellen.

+0

Danke. Tests selbst sind kein Problem, da unittest sie sonst nicht abholt. – musabaloyi

3

Django und SQLAlchemy, zwei große, populäre Python-Projekte, verwenden beide "Name" -Test (s). Persönlich bevorzuge ich das Testen von "Name", hauptsächlich, weil, wenn es mehrere Testfälle in einer Datei gibt, jedes Starten mit "Test" das Scannen schwierig macht.

Nicht sagen, dies entspricht einem Konsens, nur zwei signifikante Datenpunkte und eine persönliche Beobachtung.

+1

Danke. Ich stimme Ihrer Argumentation zu. – musabaloyi