Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Verwendung der Assert-Anweisung in Pytest: Validierung von Testbedingungen | Pytest Framework
Practice
Projects
Quizzes & Challenges
Quizze
Challenges
/
Python Fortgeschrittene Konzepte

bookVerwendung der Assert-Anweisung in Pytest: Validierung von Testbedingungen

Die assert-Anweisung wird verwendet, um zu überprüfen, ob eine Bedingung True ist. Ist die Bedingung False, schlägt der Test fehl. Pytest erweitert das grundlegende assert, indem es bei einem Fehlschlag der Assertion detaillierte Ausgaben bereitstellt, was das Verständnis des Fehlers erleichtert.

Einfache Assertions:

Überprüfung, dass die Bedingung als True ausgewertet wird. Wird sie als False ausgewertet, löst Pytest einen AssertionError aus und markiert den Test als fehlgeschlagen.

assert condition

Im folgenden Beispiel sollte word.isupper() True zurückgeben, wenn word in Großbuchstaben geschrieben ist. Andernfalls schlägt der Test fehl.

def test_is_uppercase():
    word = "HELLO"
    assert word.isupper()

Vergleichende Assertions:

assert actual == expected

Überprüfung, ob das Ergebnis einer Operation (actual) mit dem erwarteten Wert übereinstimmt.

def test_addition():
    assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"

Hier wird die Funktion add getestet, um sicherzustellen, dass sie zwei Zahlen korrekt addiert. Die Nachricht nach dem Komma liefert zusätzlichen Kontext, falls der Test fehlschlägt.

Assertions mit detailliertem Feedback:

assert condition, message

Bereitstellung einer benutzerdefinierten Fehlermeldung, die angezeigt wird, wenn die Assertion fehlschlägt, um mehr Einblick in das Problem zu geben.

def test_multiply():
    result = multiply(2, 5)
    assert result == 10, f"Expected 10, got {result}"

Diese Assertion prüft, ob die Funktion multiply beim Multiplizieren von 10 und 2 den Wert 5 zurückgibt. Die benutzerdefinierte Nachricht verdeutlicht das erwartete Ergebnis im Vergleich zum tatsächlichen Resultat, falls der Test fehlschlägt.

Assertions für Ausnahmen:

pytest.raises(ExceptionType)

Überprüfung, ob ein bestimmter Ausnahmefehler von einem Codeblock ausgelöst wird.

import pytest

def divide(x, y):
    return x / y

def test_divide_zero():
    with pytest.raises(ZeroDivisionError):
        divide(10, 0)

Dieser Test stellt sicher, dass eine Division durch Null einen ZeroDivisionError auslöst. Dies ist wesentlich für das Testen der Fehlerbehandlung im Code.

Erweiterte Assertions:

Assertions zur Überprüfung komplexerer Bedingungen, wie Inhalte von Listen, Dictionaries oder differenzierte Zustände in der Anwendung.

def test_inventory():
    inventory = ["apple", "banana", "cherry"]
    assert "banana" in inventory, "Banana should be in the inventory"

Dieser Test prüft das Vorhandensein eines Elements in einer Liste und liefert eine klare Rückmeldung, falls das Element fehlt.

Aufgabe

Swipe to start coding

Schreiben Sie pytest-Testfunktionen, um die folgenden Bedingungen zu validieren:

  1. Überprüfen Sie, dass der Aufruf von is_even(4) True zurückgibt.
  2. Überprüfen Sie, dass der Aufruf von add(2, 3) 5 ergibt.
  3. Überprüfen Sie, dass der Aufruf von multiply(3, 7) 21 zurückgibt, und geben Sie eine detaillierte Fehlermeldung aus, falls die Assertion fehlschlägt.
  4. Überprüfen Sie, dass der Aufruf von divide(10, 0) einen ZeroDivisionError auslöst. Sie können dies mit einem try / except-Block und einer assert-Anweisung überprüfen.
  5. Überprüfen Sie, dass der String 'grape' in der fruit_list enthalten ist.

Schreiben Sie jeden Test als separate Funktion mit dem Präfix test_. Verwenden Sie assert-Anweisungen zur Validierung. Für die detaillierte Fehlermeldung verwenden Sie ein f-String, der das tatsächliche Ergebnis im Fehlerfall anzeigt.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

close

bookVerwendung der Assert-Anweisung in Pytest: Validierung von Testbedingungen

Swipe um das Menü anzuzeigen

Die assert-Anweisung wird verwendet, um zu überprüfen, ob eine Bedingung True ist. Ist die Bedingung False, schlägt der Test fehl. Pytest erweitert das grundlegende assert, indem es bei einem Fehlschlag der Assertion detaillierte Ausgaben bereitstellt, was das Verständnis des Fehlers erleichtert.

Einfache Assertions:

Überprüfung, dass die Bedingung als True ausgewertet wird. Wird sie als False ausgewertet, löst Pytest einen AssertionError aus und markiert den Test als fehlgeschlagen.

assert condition

Im folgenden Beispiel sollte word.isupper() True zurückgeben, wenn word in Großbuchstaben geschrieben ist. Andernfalls schlägt der Test fehl.

def test_is_uppercase():
    word = "HELLO"
    assert word.isupper()

Vergleichende Assertions:

assert actual == expected

Überprüfung, ob das Ergebnis einer Operation (actual) mit dem erwarteten Wert übereinstimmt.

def test_addition():
    assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"

Hier wird die Funktion add getestet, um sicherzustellen, dass sie zwei Zahlen korrekt addiert. Die Nachricht nach dem Komma liefert zusätzlichen Kontext, falls der Test fehlschlägt.

Assertions mit detailliertem Feedback:

assert condition, message

Bereitstellung einer benutzerdefinierten Fehlermeldung, die angezeigt wird, wenn die Assertion fehlschlägt, um mehr Einblick in das Problem zu geben.

def test_multiply():
    result = multiply(2, 5)
    assert result == 10, f"Expected 10, got {result}"

Diese Assertion prüft, ob die Funktion multiply beim Multiplizieren von 10 und 2 den Wert 5 zurückgibt. Die benutzerdefinierte Nachricht verdeutlicht das erwartete Ergebnis im Vergleich zum tatsächlichen Resultat, falls der Test fehlschlägt.

Assertions für Ausnahmen:

pytest.raises(ExceptionType)

Überprüfung, ob ein bestimmter Ausnahmefehler von einem Codeblock ausgelöst wird.

import pytest

def divide(x, y):
    return x / y

def test_divide_zero():
    with pytest.raises(ZeroDivisionError):
        divide(10, 0)

Dieser Test stellt sicher, dass eine Division durch Null einen ZeroDivisionError auslöst. Dies ist wesentlich für das Testen der Fehlerbehandlung im Code.

Erweiterte Assertions:

Assertions zur Überprüfung komplexerer Bedingungen, wie Inhalte von Listen, Dictionaries oder differenzierte Zustände in der Anwendung.

def test_inventory():
    inventory = ["apple", "banana", "cherry"]
    assert "banana" in inventory, "Banana should be in the inventory"

Dieser Test prüft das Vorhandensein eines Elements in einer Liste und liefert eine klare Rückmeldung, falls das Element fehlt.

Aufgabe

Swipe to start coding

Schreiben Sie pytest-Testfunktionen, um die folgenden Bedingungen zu validieren:

  1. Überprüfen Sie, dass der Aufruf von is_even(4) True zurückgibt.
  2. Überprüfen Sie, dass der Aufruf von add(2, 3) 5 ergibt.
  3. Überprüfen Sie, dass der Aufruf von multiply(3, 7) 21 zurückgibt, und geben Sie eine detaillierte Fehlermeldung aus, falls die Assertion fehlschlägt.
  4. Überprüfen Sie, dass der Aufruf von divide(10, 0) einen ZeroDivisionError auslöst. Sie können dies mit einem try / except-Block und einer assert-Anweisung überprüfen.
  5. Überprüfen Sie, dass der String 'grape' in der fruit_list enthalten ist.

Schreiben Sie jeden Test als separate Funktion mit dem Präfix test_. Verwenden Sie assert-Anweisungen zur Validierung. Für die detaillierte Fehlermeldung verwenden Sie ein f-String, der das tatsächliche Ergebnis im Fehlerfall anzeigt.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
single

single

some-alt