Bruk av Assert-setningen i Pytest: Validering av Testbetingelser
assert-setningen brukes for å verifisere at en betingelse er True. Hvis betingelsen er False, feiler testen. 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, kaster Pytest en AssertionError og markerer testen som feilet.
assert condition
I neste eksempel skal word.isupper() returnere True hvis word er med store bokstaver. Hvis ikke, feiler testen.
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 summerer to tall. Meldingen etter komma gir ekstra kontekst hvis testen feiler.
Påstander med detaljert tilbakemelding:
assert condition, message
For å gi en tilpasset 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 tilpassede 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. Du kan verifisere dette ved å bruke entry / except-blokk og enassert-setning. - Kontroller at strengen
'grape'finnes ifruit_list.
Skriv hver test som en egen funksjon med prefikset test_.
Bruk assert-setninger for validering.
For den detaljerte feilmeldingen, 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
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, feiler testen. 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, kaster Pytest en AssertionError og markerer testen som feilet.
assert condition
I neste eksempel skal word.isupper() returnere True hvis word er med store bokstaver. Hvis ikke, feiler testen.
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 summerer to tall. Meldingen etter komma gir ekstra kontekst hvis testen feiler.
Påstander med detaljert tilbakemelding:
assert condition, message
For å gi en tilpasset 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 tilpassede 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. Du kan verifisere dette ved å bruke entry / except-blokk og enassert-setning. - Kontroller at strengen
'grape'finnes ifruit_list.
Skriv hver test som en egen funksjon med prefikset test_.
Bruk assert-setninger for validering.
For den detaljerte feilmeldingen, bruk en f-streng som viser det faktiske resultatet hvis påstanden feiler.
Løsning
Takk for tilbakemeldingene dine!
single