Het Gebruik van de Assert-Instructie in Pytest: Het Valideren van Testcondities
De assert-instructie wordt gebruikt om te verifiëren dat een conditie True is. Als de conditie False is, faalt de test. Pytest verbetert de standaard assert door gedetailleerde output te geven wanneer de bewering faalt, waardoor het eenvoudiger wordt om te begrijpen wat er misging.
Eenvoudige Asserties:
Controle dat de conditie wordt geëvalueerd als True. Als deze wordt geëvalueerd als False, geeft Pytest een AssertionError en markeert de test als mislukt.
assert condition
In het volgende voorbeeld zou word.isupper() True moeten retourneren als word in hoofdletters staat. Zo niet, dan faalt de test.
def test_is_uppercase():
word = "HELLO"
assert word.isupper()
Vergelijkende Asserties:
assert actual == expected
Om te verifiëren dat het resultaat van een bewerking (actual) overeenkomt met de verwachte waarde.
def test_addition():
assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"
Hier wordt de add-functie getest om te verzekeren dat deze twee getallen correct optelt. Het bericht na de komma geeft extra context als de test faalt.
Asserties met Gedetailleerde Feedback:
assert condition, message
Om een aangepaste foutmelding te geven die wordt weergegeven wanneer de assertie faalt, wat meer inzicht biedt in het probleem.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Deze assertie controleert of de functie multiply 10 retourneert bij het vermenigvuldigen van 2 en 5. Het aangepaste bericht verduidelijkt de verwachte uitkomst versus het daadwerkelijke resultaat als de test faalt.
Asserties voor Excepties:
pytest.raises(ExceptionType)
Om te bevestigen dat een bepaald type exceptie wordt opgegooid door een codeblok.
import pytest
def divide(x, y):
return x / y
def test_divide_zero():
with pytest.raises(ZeroDivisionError):
divide(10, 0)
Deze test verzekert dat delen door nul een ZeroDivisionError oplevert. Dit is essentieel voor het testen van foutafhandeling in uw code.
Geavanceerde Asserties:
Gebruik asserties om meer complexe condities te controleren, zoals de inhoud van lijsten, woordenboeken of meer genuanceerde toestanden in uw applicatie.
def test_inventory():
inventory = ["apple", "banana", "cherry"]
assert "banana" in inventory, "Banana should be in the inventory"
Deze test controleert of een item aanwezig is in een lijst en geeft duidelijke feedback als het item ontbreekt.
Swipe to start coding
Schrijf pytest-testfuncties om de volgende voorwaarden te valideren:
- Controleer dat het aanroepen van
is_even(4)Trueretourneert. - Controleer dat het aanroepen van
add(2, 3)gelijk is aan5. - Controleer dat het aanroepen van
multiply(3, 7)21retourneert en geef een gedetailleerde foutmelding als de assertie faalt. - Controleer dat het aanroepen van
divide(10, 0)eenZeroDivisionErroroplevert. Je kunt dit verifiëren met eentry / except-blok en eenassert-statement. - Controleer dat de string
'grape'voorkomt in defruit_list.
Schrijf elke test als een aparte functie met het voorvoegsel test_.
Gebruik assert-statements voor validatie.
Voor de gedetailleerde foutmelding gebruik je een f-string die het werkelijke resultaat toont als de assertie faalt.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Geweldig!
Completion tarief verbeterd naar 3.13
Het Gebruik van de Assert-Instructie in Pytest: Het Valideren van Testcondities
Veeg om het menu te tonen
De assert-instructie wordt gebruikt om te verifiëren dat een conditie True is. Als de conditie False is, faalt de test. Pytest verbetert de standaard assert door gedetailleerde output te geven wanneer de bewering faalt, waardoor het eenvoudiger wordt om te begrijpen wat er misging.
Eenvoudige Asserties:
Controle dat de conditie wordt geëvalueerd als True. Als deze wordt geëvalueerd als False, geeft Pytest een AssertionError en markeert de test als mislukt.
assert condition
In het volgende voorbeeld zou word.isupper() True moeten retourneren als word in hoofdletters staat. Zo niet, dan faalt de test.
def test_is_uppercase():
word = "HELLO"
assert word.isupper()
Vergelijkende Asserties:
assert actual == expected
Om te verifiëren dat het resultaat van een bewerking (actual) overeenkomt met de verwachte waarde.
def test_addition():
assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"
Hier wordt de add-functie getest om te verzekeren dat deze twee getallen correct optelt. Het bericht na de komma geeft extra context als de test faalt.
Asserties met Gedetailleerde Feedback:
assert condition, message
Om een aangepaste foutmelding te geven die wordt weergegeven wanneer de assertie faalt, wat meer inzicht biedt in het probleem.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Deze assertie controleert of de functie multiply 10 retourneert bij het vermenigvuldigen van 2 en 5. Het aangepaste bericht verduidelijkt de verwachte uitkomst versus het daadwerkelijke resultaat als de test faalt.
Asserties voor Excepties:
pytest.raises(ExceptionType)
Om te bevestigen dat een bepaald type exceptie wordt opgegooid door een codeblok.
import pytest
def divide(x, y):
return x / y
def test_divide_zero():
with pytest.raises(ZeroDivisionError):
divide(10, 0)
Deze test verzekert dat delen door nul een ZeroDivisionError oplevert. Dit is essentieel voor het testen van foutafhandeling in uw code.
Geavanceerde Asserties:
Gebruik asserties om meer complexe condities te controleren, zoals de inhoud van lijsten, woordenboeken of meer genuanceerde toestanden in uw applicatie.
def test_inventory():
inventory = ["apple", "banana", "cherry"]
assert "banana" in inventory, "Banana should be in the inventory"
Deze test controleert of een item aanwezig is in een lijst en geeft duidelijke feedback als het item ontbreekt.
Swipe to start coding
Schrijf pytest-testfuncties om de volgende voorwaarden te valideren:
- Controleer dat het aanroepen van
is_even(4)Trueretourneert. - Controleer dat het aanroepen van
add(2, 3)gelijk is aan5. - Controleer dat het aanroepen van
multiply(3, 7)21retourneert en geef een gedetailleerde foutmelding als de assertie faalt. - Controleer dat het aanroepen van
divide(10, 0)eenZeroDivisionErroroplevert. Je kunt dit verifiëren met eentry / except-blok en eenassert-statement. - Controleer dat de string
'grape'voorkomt in defruit_list.
Schrijf elke test als een aparte functie met het voorvoegsel test_.
Gebruik assert-statements voor validatie.
Voor de gedetailleerde foutmelding gebruik je een f-string die het werkelijke resultaat toont als de assertie faalt.
Oplossing
Bedankt voor je feedback!
single