Nehmen wir an, ich möchte testen, ob eine Funktion zwei Zahlen zurückgibt und die erste kleiner ist als die zweite:
def test_length():
result = my_function()
assert len(result) == 2
def test_order()
a, b = my_function()
assert a < b
Wenn dies test_length
fehlschlägt, test_order
wird dies auch fehlschlagen. Ist es eine bewährte Methode, zu schreiben test_length
oder zu überspringen?
BEARBEITEN: Beachten Sie, dass in dieser Situation beide Tests größtenteils unabhängig voneinander sind, jeder einzeln ausgeführt werden kann oder in umgekehrter Reihenfolge ausgeführt werden kann, dies spielt keine Rolle. Also keine dieser früheren Fragen
- Wie soll ich die Funktionalität einer Funktion testen, die andere Funktionen verwendet?
- Benötige ich einen Komponententest, wenn ich bereits einen Integrationstest habe?
- Wie strukturiere ich Tests, bei denen ein Test der Aufbau eines anderen Tests ist?
- So verwalten Sie die Erfolgsabhängigkeit zwischen Komponententests
ist ein Duplikat des obigen.
A
Aufrufe B
und das gleiche Ergebnis zurückgeben, sollten Sie beide A
und testen B
". Hier geht es eher um die Überlappung der Tests als um die zu testenden Funktionen. (Obwohl es verwirrend ist, wie sie derzeit benannt sind).
lambda: type('', (), {'__len__': lambda self: 2})()
übergibt die erste, aber nicht die zweite.