Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Assert-menetelmien Käyttäminen Unittestissä: Testitulosten Validointi | Unittest-Kehyksen Hallinta
Pythonin Rakenteellinen Ohjelmointi

bookAssert-menetelmien Käyttäminen Unittestissä: Testitulosten Validointi

assert-menetelmät ovat osa unittest.TestCase -luokkaa ja niitä käytetään ehtojen tarkistamiseen testeissä. Yksinkertaisesti sanottuna jokainen Test-luokan testimetodi päättyy lauseeseen, kuten self.assert.

Yleisesti käytetyt assert-menetelmät

MethodCheckExample
assertEqual(a, b)a == bassertEqual(sum([1, 2, 3]), 6)
assertNotEqual(a, b)a != bassertNotEqual(1, 2)
assertTrue(x)bool(x) is TrueassertTrue(isinstance(123, int))
assertFalse(x)bool(x) is FalseassertFalse(isinstance("hello", int))
assertIs(a, b)a is ba = 1, b = a
assertIsNone(x)x is Nonebook.price = None
assertIn(a, b)a in bassertIn(2, [1, 2, 3])
assertIsInstance(a, b)isinstance(a, b)assertIsInstance(123, int)

Lisäksi assertRaises(Error, func, *args, **kwargs) käytetään testaamaan, että virhe nostetaan. Esimerkiksi:

with self.assertRaises(ValueError):
    int("xyz")

Tämä tarkistaa, että merkkijonon "xyz" muuntaminen kokonaisluvuksi nostaa ValueError-poikkeuksen.

Tehtävä

Swipe to start coding

Tehtävänäsi on harjoitella erilaisten assert-metodien käyttöä unittest-kirjastossa. Täydennä TestFunctions-luokka kirjoittamalla erilliset testimetodit jokaista seuraavaa tarkistusta varten. Käytä tarkalleen alla annettuja metodinimiä jokaiseen tarkistukseen.

  • Tarkista, että add(2, 3) palauttaa 5 käyttäen assertEqual-metodia. Metodin nimi: test_add_equal.
  • Tarkista, että add(2, 2) ei palauta 5 käyttäen assertNotEqual-metodia. Metodin nimi: test_add_not_equal.
  • Tarkista, että is_even(4) palauttaa True käyttäen assertTrue-metodia. Metodin nimi: test_is_even_true.
  • Tarkista, että is_even(5) palauttaa False käyttäen assertFalse-metodia. Metodin nimi: test_is_even_false.
  • Tarkista, että get_item([10, 20, 30], 1) palauttaa saman olion kuin 20 käyttäen assertIs-metodia. Metodin nimi: test_get_item_is.
  • Tarkista, että get_item([1, 2, 3], 10) palauttaa None käyttäen assertIsNone-metodia. Metodin nimi: test_get_item_is_none.
  • Tarkista, että 2 sisältyy listaan [1, 2, 3] käyttäen assertIn-metodia. Metodin nimi: test_in_list.
  • Tarkista, että add(1, 2) palauttaa int-tyyppisen olion käyttäen assertIsInstance-metodia. Metodin nimi: test_add_is_instance.

Kirjoita yksi testimetodi jokaista tarkistusta varten ja käytä vain yllä määriteltyjä metodinimiä. Jokaisessa testimetodissa saa käyttää vain yhtä assert-metodia.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 2
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Suggested prompts:

Can you explain the difference between assertEqual and assertIs?

What happens if an assertion fails in a test?

Can you give more examples of using assertRaises?

close

bookAssert-menetelmien Käyttäminen Unittestissä: Testitulosten Validointi

Pyyhkäise näyttääksesi valikon

assert-menetelmät ovat osa unittest.TestCase -luokkaa ja niitä käytetään ehtojen tarkistamiseen testeissä. Yksinkertaisesti sanottuna jokainen Test-luokan testimetodi päättyy lauseeseen, kuten self.assert.

Yleisesti käytetyt assert-menetelmät

MethodCheckExample
assertEqual(a, b)a == bassertEqual(sum([1, 2, 3]), 6)
assertNotEqual(a, b)a != bassertNotEqual(1, 2)
assertTrue(x)bool(x) is TrueassertTrue(isinstance(123, int))
assertFalse(x)bool(x) is FalseassertFalse(isinstance("hello", int))
assertIs(a, b)a is ba = 1, b = a
assertIsNone(x)x is Nonebook.price = None
assertIn(a, b)a in bassertIn(2, [1, 2, 3])
assertIsInstance(a, b)isinstance(a, b)assertIsInstance(123, int)

Lisäksi assertRaises(Error, func, *args, **kwargs) käytetään testaamaan, että virhe nostetaan. Esimerkiksi:

with self.assertRaises(ValueError):
    int("xyz")

Tämä tarkistaa, että merkkijonon "xyz" muuntaminen kokonaisluvuksi nostaa ValueError-poikkeuksen.

Tehtävä

Swipe to start coding

Tehtävänäsi on harjoitella erilaisten assert-metodien käyttöä unittest-kirjastossa. Täydennä TestFunctions-luokka kirjoittamalla erilliset testimetodit jokaista seuraavaa tarkistusta varten. Käytä tarkalleen alla annettuja metodinimiä jokaiseen tarkistukseen.

  • Tarkista, että add(2, 3) palauttaa 5 käyttäen assertEqual-metodia. Metodin nimi: test_add_equal.
  • Tarkista, että add(2, 2) ei palauta 5 käyttäen assertNotEqual-metodia. Metodin nimi: test_add_not_equal.
  • Tarkista, että is_even(4) palauttaa True käyttäen assertTrue-metodia. Metodin nimi: test_is_even_true.
  • Tarkista, että is_even(5) palauttaa False käyttäen assertFalse-metodia. Metodin nimi: test_is_even_false.
  • Tarkista, että get_item([10, 20, 30], 1) palauttaa saman olion kuin 20 käyttäen assertIs-metodia. Metodin nimi: test_get_item_is.
  • Tarkista, että get_item([1, 2, 3], 10) palauttaa None käyttäen assertIsNone-metodia. Metodin nimi: test_get_item_is_none.
  • Tarkista, että 2 sisältyy listaan [1, 2, 3] käyttäen assertIn-metodia. Metodin nimi: test_in_list.
  • Tarkista, että add(1, 2) palauttaa int-tyyppisen olion käyttäen assertIsInstance-metodia. Metodin nimi: test_add_is_instance.

Kirjoita yksi testimetodi jokaista tarkistusta varten ja käytä vain yllä määriteltyjä metodinimiä. Jokaisessa testimetodissa saa käyttää vain yhtä assert-metodia.

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 5. Luku 2
single

single

some-alt