single
Assert-lauseen Käyttäminen Pytestissä: Testiehtojen Validointi
Pyyhkäise näyttääksesi valikon
assert-lauseella varmistetaan, että ehto on True. Jos ehto on False, testi epäonnistuu. Pytest parantaa perus-assert-lausetta tarjoamalla yksityiskohtaisen tulosteen, kun väite epäonnistuu, mikä helpottaa virheen syyn ymmärtämistä.
Yksinkertaiset väitteet:
Tarkista, että ehto arvioituu arvoksi True. Jos se arvioituu arvoksi False, Pytest nostaa AssertionError-poikkeuksen ja merkitsee testin epäonnistuneeksi.
assert condition
Seuraavassa esimerkissä word.isupper() palauttaa arvon True, jos word on isoilla kirjaimilla. Muussa tapauksessa testi epäonnistuu.
def test_is_uppercase():
word = "HELLO"
assert word.isupper()
Vertailuväitteet:
assert actual == expected
Varmista, että operaation tulos (actual) vastaa odotettua arvoa.
def test_addition():
assert add(5, 3) == 8, "The addition function should return 8 for 5 + 3"
Tässä testataan add-funktiota, jotta varmistetaan, että se laskee kaksi lukua oikein yhteen. Pilkun jälkeinen viesti antaa lisätietoa, jos testi epäonnistuu.
Väitteet yksityiskohtaisella palautteella:
assert condition, message
Tarjoa mukautettu virheilmoitus, joka näytetään, kun väite epäonnistuu, tarjoten lisätietoa ongelmasta.
def test_multiply():
result = multiply(2, 5)
assert result == 10, f"Expected 10, got {result}"
Tämä väite tarkistaa, palauttaako multiply-funktio arvon 10 kerrottaessa 2 ja 5. Mukautettu viesti selventää odotettua ja toteutunutta tulosta, jos testi epäonnistuu.
Väitteet poikkeuksille:
pytest.raises(ExceptionType)
Varmista, että tietty poikkeus nousee koodilohkossa.
import pytest
def divide(x, y):
return x / y
def test_divide_zero():
with pytest.raises(ZeroDivisionError):
divide(10, 0)
Tämä testi varmistaa, että nollalla jakaminen nostaa ZeroDivisionError-poikkeuksen. Tämä on olennaista virheenkäsittelyn testaamisessa.
Kehittyneet väitteet:
Käytä väitteitä tarkistaaksesi monimutkaisempia ehtoja, kuten listojen, sanakirjojen sisältöä tai sovelluksen tiloja.
def test_inventory():
inventory = ["apple", "banana", "cherry"]
assert "banana" in inventory, "Banana should be in the inventory"
Tämä testi tarkistaa, löytyykö tietty alkio listasta, ja antaa selkeän palautteen, jos alkio puuttuu.
Swipe to start coding
Kirjoita pytest-testifunktiot seuraavien ehtojen tarkistamiseksi:
- Tarkista, että kutsu
is_even(4)palauttaaTrue. - Tarkista, että kutsu
add(2, 3)palauttaa arvon5. - Tarkista, että kutsu
multiply(3, 7)palauttaa arvon21, ja anna yksityiskohtainen virheilmoitus, jos väite epäonnistuu. - Tarkista, että kutsu
divide(10, 0)nostaa poikkeuksenZeroDivisionError. Voit tarkistaa tämän käyttämällätry / except-lohkoa jaassert-lausetta. - Tarkista, että merkkijono
'grape'löytyy listastafruit_list.
Kirjoita jokainen testi omana funktionaan käyttäen etuliitettä test_.
Käytä validointiin assert-lauseita.
Yksityiskohtaista virheilmoitusta varten käytä f-merkkijonoa, joka näyttää todellisen tuloksen, jos väite epäonnistuu.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme