STARTBEITRAG
Eine Funktion soll Zahlen sortiert zurückgeben. Mein Test prüft nur das Ergebnis und ist grün. Dass dabei auch die übergebene Liste sortiert wird, fällt erst später auf. Gehört unveränderte Eingabe wirklich in denselben Testvertrag?
Lernfragen und Praxis · 6 Antworten
STARTBEITRAG
Eine Funktion soll Zahlen sortiert zurückgeben. Mein Test prüft nur das Ergebnis und ist grün. Dass dabei auch die übergebene Liste sortiert wird, fällt erst später auf. Gehört unveränderte Eingabe wirklich in denselben Testvertrag?
Wenn die Funktion laut Anforderung die Eingabe erhalten soll, gehört genau das dazu. Prüfe Ergebnis und ursprüngliche Liste. Wenn sie ausdrücklich vor Ort sortieren soll, wäre der Vertrag anders.
Wenn die Funktion laut Anforderung die Eingabe erhalten soll, gehört genau das dazu. Prüfe Ergebnis und ursprüngliche Liste. Wenn sie ausdrücklich vor Ort sortieren soll, wäre der …
Ich hatte erwartet = eingabe gesetzt und danach beides verglichen. Vermutlich habe ich damit denselben Fehler im Test nochmal eingebaut.
Ich hatte erwartet = eingabe gesetzt und danach beides verglichen. Vermutlich habe ich damit denselben Fehler im Test nochmal eingebaut.
Bei einer Liste aus Zahlen kannst du vorher eine Kopie speichern. Sonst zeigen Erwartung und Eingabe auf dieselbe Liste und verändern sich zusammen.
Bei einer Liste aus Zahlen kannst du vorher eine Kopie speichern. Sonst zeigen Erwartung und Eingabe auf dieselbe Liste und verändern sich zusammen.
Dann eine eigene feste Erwartung plus Vergleich mit der ursprünglichen Reihenfolge. Der grüne Test hatte leider nur bewiesen, dass ein Array mit sich selbst übereinstimmt.
Wenigstens ein sehr zuverlässiger Test. Er widerspricht sich praktisch nie.
Als Gegenprobe die Funktion absichtlich auf die mutierende Variante setzen. Der Test muss dann scheitern, sonst prüft er die Anforderung noch nicht.