Ich bin neu in Python und versuche etwas zu tun, was ich oft in Ruby mache. Nämlich über eine Reihe von Indizes zu iterieren, sie als Argument für die Funktion zu verwenden und ihre Ergebnisse mit einem Array von Fixture-Ausgaben zu vergleichen.
Also habe ich es so geschrieben, wie ich es normalerweise in Ruby mache, aber das führte nur zu einem Testfall.
%Vor%Ich versuche, den Test für jedes Element in der Reihe zu bekommen. Wie kann ich das tun?
Mit unittest können Sie den Unterschied zwischen zwei Sequenzen in einem Testfall zeigen.
%Vor%Wenn das nicht flexibel genug ist, ist es mit unittest möglich, mehrere Tests zu generieren, aber es ist ein bisschen schwierig.
%Vor%Nase macht das oben genannte einfacher durch Testgeneratoren .
%Vor%Ähnliche Fragen:
In der Python-Welt sind zwei der beliebtesten Optionen zum Schreiben von Tests:
In pytest parametrisieren Sie Tests sehr einfach:
%Vor%Dies wird auch beim Ausführen von Tests eine gute Ausgabe erzeugen:
%Vor% Ich benutze Pytest jetzt seit zwei Jahren und es ist ein sehr nettes Werkzeug. Sie haben dort viele Funktionen. Neben der Parametrisierung gibt es auch Fixtures, sehr sehr schöne Assertions (du musst nicht assertEqual schreiben, nur assert a==b
und pytest können sehr nette und hilfreiche Ausgaben dafür generieren.)
Ausgehend von Python 3.4 können Sie das folgendermaßen machen:
%Vor%Tags und Links python python-unittest