Der Rückgabewert stimmt, aber meine Funktion verändert ihre Eingabe

Lernfragen und Praxis · 6 Antworten

STARTBEITRAG

#1

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?

0

Antworten

6
Antwort auf das Thema
#2

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.

0
Antwort auf Antwort

Antwort auf #2 von buildfehler

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 …
#3

Ich hatte erwartet = eingabe gesetzt und danach beides verglichen. Vermutlich habe ich damit denselben Fehler im Test nochmal eingebaut.

0
Antwort auf Antwort

Antwort auf #3 von Nils_H

Ich hatte erwartet = eingabe gesetzt und danach beides verglichen. Vermutlich habe ich damit denselben Fehler im Test nochmal eingebaut.
#4

Bei einer Liste aus Zahlen kannst du vorher eine Kopie speichern. Sonst zeigen Erwartung und Eingabe auf dieselbe Liste und verändern sich zusammen.

0
Antwort auf Antwort

Antwort auf #4 von semikolon

Bei einer Liste aus Zahlen kannst du vorher eine Kopie speichern. Sonst zeigen Erwartung und Eingabe auf dieselbe Liste und verändern sich zusammen.
#5

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.

0
Antwort auf das Thema
#6

Wenigstens ein sehr zuverlässiger Test. Er widerspricht sich praktisch nie.

0
Wenigstens ein sehr zuverlässiger Test. Er widerspricht sich praktisch nie.
#7

Als Gegenprobe die Funktion absichtlich auf die mutierende Variante setzen. Der Test muss dann scheitern, sonst prüft er die Anforderung noch nicht.

0