Assert-lauseen Käyttäminen Pytestissä: Testiehtojen Validointi
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
Mahtavaa!
Completion arvosana parantunut arvoon 3.13
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