Brug af Assert-sætningen i Pytest: Validering af Testbetingelser
assert-udsagnet bruges til at verificere, at en betingelse er True. Hvis betingelsen er False, fejler testen. Pytest udvider den grundlæggende assert ved at give detaljeret output, når en påstand fejler, hvilket gør det lettere at forstå, hvad der gik galt.
Enkle påstande:
Kontroller, at betingelsen evalueres som True. Hvis den evalueres som False, rejser Pytest en AssertionError og markerer testen som fejlet.
assert condition
I det næste eksempel skal word.isupper() returnere True, hvis word er med store bogstaver. Hvis ikke, fejler testen.
def test_is_uppercase():
word = "HELLO"
assert word.isupper()
Komparative påstande:
assert actual == expected
For at verificere, at resultatet af en operation (actual) matcher den forventede værdi.
def test_addition():
assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"
Her testes add-funktionen for at sikre, at den korrekt lægger to tal sammen. Beskeden efter kommaet giver yderligere kontekst, hvis testen fejler.
Påstande med detaljeret feedback:
assert condition, message
For at give en brugerdefineret fejlmeddelelse, der vises, når påstanden fejler, hvilket giver mere indsigt i problemet.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Denne påstand kontrollerer, om multiply-funktionen returnerer 10, når man ganger 2 og 5. Den brugerdefinerede besked præciserer det forventede resultat i forhold til det faktiske resultat, hvis testen fejler.
Påstande for undtagelser:
pytest.raises(ExceptionType)
For at bekræfte, at en bestemt undtagelse udløses af en kodeblok.
import pytest
def divide(x, y):
return x / y
def test_divide_zero():
with pytest.raises(ZeroDivisionError):
divide(10, 0)
Denne test sikrer, at division med nul udløser en ZeroDivisionError. Det er essentielt for at teste fejlhåndtering i din kode.
Avancerede påstande:
Brug påstande til at kontrollere mere komplekse betingelser, såsom indholdet af lister, ordbøger eller mere nuancerede tilstande i din applikation.
def test_inventory():
inventory = ["apple", "banana", "cherry"]
assert "banana" in inventory, "Banana should be in the inventory"
Denne test kontrollerer, om et element findes i en liste, og giver tydelig feedback, hvis elementet mangler.
Swipe to start coding
Skriv pytest-testfunktioner for at validere følgende betingelser:
- Kontroller, at kald af
is_even(4)returnererTrue. - Kontroller, at kald af
add(2, 3)giver5. - Kontroller, at kald af
multiply(3, 7)returnerer21, og giv en detaljeret fejlmeddelelse, hvis påstanden fejler. - Kontroller, at kald af
divide(10, 0)udløser enZeroDivisionError. - Kontroller, at strengen
'grape'findes ifruit_list.
Skriv hver test som en separat funktion med præfikset test_. Brug assert-udsagn til validering. Brug pytest.raises-kontekststyring til undtagelsen. Brug en f-streng til den detaljerede fejlmeddelelse, så den faktiske værdi vises, hvis påstanden fejler.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain how pytest improves the output of failed assertions?
What are some best practices for writing custom error messages in assertions?
How do I use pytest to test for exceptions in my code?
Fantastisk!
Completion rate forbedret til 3.13
Brug af Assert-sætningen i Pytest: Validering af Testbetingelser
Stryg for at vise menuen
assert-udsagnet bruges til at verificere, at en betingelse er True. Hvis betingelsen er False, fejler testen. Pytest udvider den grundlæggende assert ved at give detaljeret output, når en påstand fejler, hvilket gør det lettere at forstå, hvad der gik galt.
Enkle påstande:
Kontroller, at betingelsen evalueres som True. Hvis den evalueres som False, rejser Pytest en AssertionError og markerer testen som fejlet.
assert condition
I det næste eksempel skal word.isupper() returnere True, hvis word er med store bogstaver. Hvis ikke, fejler testen.
def test_is_uppercase():
word = "HELLO"
assert word.isupper()
Komparative påstande:
assert actual == expected
For at verificere, at resultatet af en operation (actual) matcher den forventede værdi.
def test_addition():
assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"
Her testes add-funktionen for at sikre, at den korrekt lægger to tal sammen. Beskeden efter kommaet giver yderligere kontekst, hvis testen fejler.
Påstande med detaljeret feedback:
assert condition, message
For at give en brugerdefineret fejlmeddelelse, der vises, når påstanden fejler, hvilket giver mere indsigt i problemet.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Denne påstand kontrollerer, om multiply-funktionen returnerer 10, når man ganger 2 og 5. Den brugerdefinerede besked præciserer det forventede resultat i forhold til det faktiske resultat, hvis testen fejler.
Påstande for undtagelser:
pytest.raises(ExceptionType)
For at bekræfte, at en bestemt undtagelse udløses af en kodeblok.
import pytest
def divide(x, y):
return x / y
def test_divide_zero():
with pytest.raises(ZeroDivisionError):
divide(10, 0)
Denne test sikrer, at division med nul udløser en ZeroDivisionError. Det er essentielt for at teste fejlhåndtering i din kode.
Avancerede påstande:
Brug påstande til at kontrollere mere komplekse betingelser, såsom indholdet af lister, ordbøger eller mere nuancerede tilstande i din applikation.
def test_inventory():
inventory = ["apple", "banana", "cherry"]
assert "banana" in inventory, "Banana should be in the inventory"
Denne test kontrollerer, om et element findes i en liste, og giver tydelig feedback, hvis elementet mangler.
Swipe to start coding
Skriv pytest-testfunktioner for at validere følgende betingelser:
- Kontroller, at kald af
is_even(4)returnererTrue. - Kontroller, at kald af
add(2, 3)giver5. - Kontroller, at kald af
multiply(3, 7)returnerer21, og giv en detaljeret fejlmeddelelse, hvis påstanden fejler. - Kontroller, at kald af
divide(10, 0)udløser enZeroDivisionError. - Kontroller, at strengen
'grape'findes ifruit_list.
Skriv hver test som en separat funktion med præfikset test_. Brug assert-udsagn til validering. Brug pytest.raises-kontekststyring til undtagelsen. Brug en f-streng til den detaljerede fejlmeddelelse, så den faktiske værdi vises, hvis påstanden fejler.
Løsning
Tak for dine kommentarer!
single