Ausgabe mit erwartetem Wert vergleichen
In diesem Schritt lernen Sie, wie Sie die Ausgabe einer Funktion mit einem erwarteten Wert vergleichen. Dies ist ein entscheidender Teil des Testens und der Gewährleistung, dass Ihre Funktionen korrekt funktionieren. Indem Sie die tatsächliche Ausgabe mit der erwarteten Ausgabe vergleichen, können Sie Fehler in Ihrem Code identifizieren und beheben.
Wir verwenden weiterhin die Datei calculate_sum.py
aus den vorherigen Schritten. Wenn Sie die vorherigen Schritte nicht abgeschlossen haben, erstellen Sie bitte die Datei mit folgendem Inhalt:
def calculate_sum(x, y):
"""
This function calculates the sum of two numbers.
If the sum is greater than 10, it returns double the sum.
"""
sum_result = x + y
if sum_result > 10:
return sum_result * 2
else:
return sum_result
## Example usage:
num1 = 10
num2 = 5
result = calculate_sum(num1, num2)
print("The sum of", num1, "and", num2, "is", result)
## Capture the output and perform an additional operation
final_result = result + 20
print("The final result after adding 20 is:", final_result)
num3 = 2
num4 = 3
result2 = calculate_sum(num3, num4)
print("The sum of", num3, "and", num4, "is", result2)
## Capture the output and perform an additional operation
final_result2 = result2 * 2
print("The final result after multiplying by 2 is:", final_result2)
Jetzt fügen wir eine Funktion hinzu, um die Ausgabe mit einem erwarteten Wert zu vergleichen und eine Nachricht auszugeben, die angibt, ob der Test bestanden oder fehlgeschlagen ist.
-
Öffnen Sie die Datei calculate_sum.py
im VS Code-Editor.
-
Ändern Sie das Skript wie folgt:
def calculate_sum(x, y):
"""
This function calculates the sum of two numbers.
If the sum is greater than 10, it returns double the sum.
"""
sum_result = x + y
if sum_result > 10:
return sum_result * 2
else:
return sum_result
def compare_output(actual_output, expected_output):
"""
This function compares the actual output with the expected output.
"""
if actual_output == expected_output:
print("Test passed!")
else:
print("Test failed. Expected:", expected_output, "Actual:", actual_output)
## Example usage:
num1 = 10
num2 = 5
result = calculate_sum(num1, num2)
print("The sum of", num1, "and", num2, "is", result)
## Capture the output and perform an additional operation
final_result = result + 20
print("The final result after adding 20 is:", final_result)
## Compare the output with the expected value
expected_final_result = 50
compare_output(final_result, expected_final_result)
num3 = 2
num4 = 3
result2 = calculate_sum(num3, num4)
print("The sum of", num3, "and", num4, "is", result2)
## Capture the output and perform an additional operation
final_result2 = result2 * 2
print("The final result after multiplying by 2 is:", final_result2)
## Compare the output with the expected value
expected_final_result2 = 10
compare_output(final_result2, expected_final_result2)
In diesem geänderten Skript:
- Wir definieren eine Funktion namens
compare_output
, die zwei Argumente akzeptiert: actual_output
und expected_output
.
- Innerhalb der Funktion vergleichen wir die
actual_output
mit der expected_output
.
- Wenn sie gleich sind, geben wir "Test passed!" aus.
- Wenn sie nicht gleich sind, geben wir "Test failed." zusammen mit den erwarteten und tatsächlichen Werten aus.
- Wir rufen dann die
compare_output
-Funktion mit final_result
und expected_final_result
auf, um die Ausgabe der ersten Berechnung mit dem erwarteten Wert von 50 zu vergleichen.
- Wir rufen auch die
compare_output
-Funktion mit final_result2
und expected_final_result2
auf, um die Ausgabe der zweiten Berechnung mit dem erwarteten Wert von 10 zu vergleichen.
-
Führen Sie das Skript mit dem folgenden Befehl aus:
python ~/project/calculate_sum.py
Sie sollten die folgende Ausgabe sehen:
The sum of 10 and 5 is 30
The final result after adding 20 is: 50
Test passed!
The sum of 2 and 3 is 5
The final result after multiplying by 2 is: 10
Test passed!
Diese Ausgabe zeigt, dass Sie die Ausgabe einer Funktion erfolgreich mit einem erwarteten Wert vergleichen und feststellen können, ob der Test bestanden oder fehlgeschlagen ist.