Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Assert-lauseen Käyttäminen Pytestissä: Testiehtojen Validointi | Pytest-Kehyksen Hallinta
Practice
Projects
Quizzes & Challenges
Visat
Challenges
/
Pythonin Rakenteellinen Ohjelmointi

bookAssert-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.

Tehtävä

Swipe to start coding

Kirjoita pytest-testifunktiot seuraavien ehtojen tarkistamiseksi:

  1. Tarkista, että kutsu is_even(4) palauttaa True.
  2. Tarkista, että kutsu add(2, 3) palauttaa arvon 5.
  3. Tarkista, että kutsu multiply(3, 7) palauttaa arvon 21, ja anna yksityiskohtainen virheilmoitus, jos väite epäonnistuu.
  4. Tarkista, että kutsu divide(10, 0) nostaa poikkeuksen ZeroDivisionError. Voit tarkistaa tämän käyttämällä try / except -lohkoa ja assert-lausetta.
  5. Tarkista, että merkkijono 'grape' löytyy listasta fruit_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

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

bookAssert-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.

Tehtävä

Swipe to start coding

Kirjoita pytest-testifunktiot seuraavien ehtojen tarkistamiseksi:

  1. Tarkista, että kutsu is_even(4) palauttaa True.
  2. Tarkista, että kutsu add(2, 3) palauttaa arvon 5.
  3. Tarkista, että kutsu multiply(3, 7) palauttaa arvon 21, ja anna yksityiskohtainen virheilmoitus, jos väite epäonnistuu.
  4. Tarkista, että kutsu divide(10, 0) nostaa poikkeuksen ZeroDivisionError. Voit tarkistaa tämän käyttämällä try / except -lohkoa ja assert-lausetta.
  5. Tarkista, että merkkijono 'grape' löytyy listasta fruit_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

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 3
single

single

some-alt