2013-09-24 8 views
8

Beim Schreiben von Tests benenne ich normalerweise die Module mit dem Präfix test_, zum Beispiel spam.py und test_spam.py. Dies erleichtert das Auffinden der Tests. Beim Testen von Klassen in einem Modul erstelle ich ein unittest.TestCase Derivat mit einem ähnlichen Klassennamen, nachfixiert mit Test. z.B. Spam wird SpamTest (nicht TestSpam wie dies klingt wie es ist eine Test-Implementierung von Spam). Dann Funktionen Klasse werden von Testfunktionen getestet, die mit test_ und mit angehängten _testcondition oder einem anderen beschreibenden postfix Präfix. Ich finde, dass dies hervorragend funktioniert, da die ursprünglichen Objektnamen enthalten sind.Namenskonvention für Python-Unit-Tests für Modulfunktionen

Das Problem tritt auf, wenn ich will Funktionen Modulebene testen. Nach meiner regelmäßigen Struktur würde ich einen unittest.TestCase-Derivats mit dem gleichen Namen wie die Funktion, mit angehängten Test erstellen. Das Problem dabei ist, dass Klassennamen mit Kamelen versehen sind und Funktionsnamen mit Unterstrichen versehen sind, um Wörter zu trennen. Ignorieren der Namenskonvention some_function wird SomeFunctionTest. Ich kann nicht anders, als zu fühlen, dass das hässlich ist.

Was wäre eine bessere Passform? Was ist gängige Praxis? Gibt es dafür einen "Standard" wie Pep8? Was benutzt du?

+0

Ehrlich? Ich kann nicht sagen, dass es wichtig ist. Sei nur konsequent. – Veedrac

Antwort

3

Die Art und Weise Sie es tun, ist die sauberste Ansatz - solange es eine klare Position, wo die Menschen erwarten, die Tests für ein Modul-Level-Funktion zu finden, dann denke ich, Sie sind gut. Die stilistische Unterschied zwischen dem Funktionsnamen und der Testklassenname - obwohl ein Ärgernis - ist nicht signifikant genug, um sich Sorgen zu machen.