Bruk av Assert-setningen i Pytest: Validering av Testbetingelser
assert-setningen brukes for å verifisere at en betingelse er True. Hvis betingelsen er False, vil testen feile. Pytest forbedrer den grunnleggende assert-funksjonaliteten ved å gi detaljert tilbakemelding når en påstand feiler, noe som gjør det enklere å forstå hva som gikk galt.
Enkle påstander:
Kontroller at betingelsen evalueres til True. Hvis den evalueres til False, vil Pytest kaste en AssertionError og markere testen som mislykket.
assert condition
I det neste eksempelet skal word.isupper() returnere True hvis word er med store bokstaver. Hvis ikke, vil testen feile.
def test_is_uppercase():
word = "HELLO"
assert word.isupper()
Komparative påstander:
assert actual == expected
For å verifisere at resultatet av en operasjon (actual) samsvarer med forventet verdi.
def test_addition():
assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"
Her testes add-funksjonen for å sikre at den korrekt legger sammen to tall. Meldingen etter komma gir ekstra kontekst hvis testen feiler.
Påstander med detaljert tilbakemelding:
assert condition, message
For å gi en egendefinert feilmelding som vises når påstanden feiler, og dermed gir mer innsikt i problemet.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Denne påstanden sjekker om multiply-funksjonen returnerer 10 når man multipliserer 2 og 5. Den egendefinerte meldingen tydeliggjør forventet resultat versus faktisk resultat hvis testen feiler.
Påstander for unntak:
pytest.raises(ExceptionType)
For å bekrefte at en bestemt unntakstype kastes av en kodeblokk.
import pytest
def divide(x, y):
return x / y
def test_divide_zero():
with pytest.raises(ZeroDivisionError):
divide(10, 0)
Denne testen sikrer at deling på null kaster en ZeroDivisionError. Dette er viktig for å teste feilhåndtering i koden din.
Avanserte påstander:
Bruk påstander for å sjekke mer komplekse forhold, som innholdet i lister, ordbøker eller mer nyanserte tilstander i applikasjonen din.
def test_inventory():
inventory = ["apple", "banana", "cherry"]
assert "banana" in inventory, "Banana should be in the inventory"
Denne testen sjekker om et element finnes i en liste, og gir tydelig tilbakemelding hvis elementet mangler.
Swipe to start coding
Skriv pytest-testfunksjoner for å validere følgende betingelser:
- Kontroller at kall på
is_even(4)returnererTrue. - Kontroller at kall på
add(2, 3)gir5. - Kontroller at kall på
multiply(3, 7)returnerer21, og gi en detaljert feilmelding hvis påstanden feiler. - Kontroller at kall på
divide(10, 0)utløser enZeroDivisionError. - Kontroller at strengen
'grape'finnes ifruit_list.
Skriv hver test som en egen funksjon med prefikset test_. Bruk assert-setninger for validering. For unntaket, bruk pytest.raises-kontekstbehandleren. For den detaljerte meldingen, bruk en f-streng som viser det faktiske resultatet hvis påstanden feiler.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Bruk av Assert-setningen i Pytest: Validering av Testbetingelser
Sveip for å vise menyen
assert-setningen brukes for å verifisere at en betingelse er True. Hvis betingelsen er False, vil testen feile. Pytest forbedrer den grunnleggende assert-funksjonaliteten ved å gi detaljert tilbakemelding når en påstand feiler, noe som gjør det enklere å forstå hva som gikk galt.
Enkle påstander:
Kontroller at betingelsen evalueres til True. Hvis den evalueres til False, vil Pytest kaste en AssertionError og markere testen som mislykket.
assert condition
I det neste eksempelet skal word.isupper() returnere True hvis word er med store bokstaver. Hvis ikke, vil testen feile.
def test_is_uppercase():
word = "HELLO"
assert word.isupper()
Komparative påstander:
assert actual == expected
For å verifisere at resultatet av en operasjon (actual) samsvarer med forventet verdi.
def test_addition():
assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"
Her testes add-funksjonen for å sikre at den korrekt legger sammen to tall. Meldingen etter komma gir ekstra kontekst hvis testen feiler.
Påstander med detaljert tilbakemelding:
assert condition, message
For å gi en egendefinert feilmelding som vises når påstanden feiler, og dermed gir mer innsikt i problemet.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Denne påstanden sjekker om multiply-funksjonen returnerer 10 når man multipliserer 2 og 5. Den egendefinerte meldingen tydeliggjør forventet resultat versus faktisk resultat hvis testen feiler.
Påstander for unntak:
pytest.raises(ExceptionType)
For å bekrefte at en bestemt unntakstype kastes av en kodeblokk.
import pytest
def divide(x, y):
return x / y
def test_divide_zero():
with pytest.raises(ZeroDivisionError):
divide(10, 0)
Denne testen sikrer at deling på null kaster en ZeroDivisionError. Dette er viktig for å teste feilhåndtering i koden din.
Avanserte påstander:
Bruk påstander for å sjekke mer komplekse forhold, som innholdet i lister, ordbøker eller mer nyanserte tilstander i applikasjonen din.
def test_inventory():
inventory = ["apple", "banana", "cherry"]
assert "banana" in inventory, "Banana should be in the inventory"
Denne testen sjekker om et element finnes i en liste, og gir tydelig tilbakemelding hvis elementet mangler.
Swipe to start coding
Skriv pytest-testfunksjoner for å validere følgende betingelser:
- Kontroller at kall på
is_even(4)returnererTrue. - Kontroller at kall på
add(2, 3)gir5. - Kontroller at kall på
multiply(3, 7)returnerer21, og gi en detaljert feilmelding hvis påstanden feiler. - Kontroller at kall på
divide(10, 0)utløser enZeroDivisionError. - Kontroller at strengen
'grape'finnes ifruit_list.
Skriv hver test som en egen funksjon med prefikset test_. Bruk assert-setninger for validering. For unntaket, bruk pytest.raises-kontekstbehandleren. For den detaljerte meldingen, bruk en f-streng som viser det faktiske resultatet hvis påstanden feiler.
Løsning
Takk for tilbakemeldingene dine!
single