Assert-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
| Method | Check | Example |
|---|---|---|
| assertEqual(a, b) | a == b | assertEqual(sum([1, 2, 3]), 6) |
| assertNotEqual(a, b) | a != b | assertNotEqual(1, 2) |
| assertTrue(x) | bool(x) is True | assertTrue(isinstance(123, int)) |
| assertFalse(x) | bool(x) is False | assertFalse(isinstance("hello", int)) |
| assertIs(a, b) | a is b | a = 1, b = a |
| assertIsNone(x) | x is None | book.price = None |
| assertIn(a, b) | a in b | assertIn(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.
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)palauttaa5käyttäenassertEqual-metodia. Metodin nimi:test_add_equal. - Tarkista, että
add(2, 2)ei palauta5käyttäenassertNotEqual-metodia. Metodin nimi:test_add_not_equal. - Tarkista, että
is_even(4)palauttaaTruekäyttäenassertTrue-metodia. Metodin nimi:test_is_even_true. - Tarkista, että
is_even(5)palauttaaFalsekäyttäenassertFalse-metodia. Metodin nimi:test_is_even_false. - Tarkista, että
get_item([10, 20, 30], 1)palauttaa saman olion kuin20käyttäenassertIs-metodia. Metodin nimi:test_get_item_is. - Tarkista, että
get_item([1, 2, 3], 10)palauttaaNonekäyttäenassertIsNone-metodia. Metodin nimi:test_get_item_is_none. - Tarkista, että
2sisältyy listaan[1, 2, 3]käyttäenassertIn-metodia. Metodin nimi:test_in_list. - Tarkista, että
add(1, 2)palauttaaint-tyyppisen olion käyttäenassertIsInstance-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
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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?
Mahtavaa!
Completion arvosana parantunut arvoon 3.13
Assert-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
| Method | Check | Example |
|---|---|---|
| assertEqual(a, b) | a == b | assertEqual(sum([1, 2, 3]), 6) |
| assertNotEqual(a, b) | a != b | assertNotEqual(1, 2) |
| assertTrue(x) | bool(x) is True | assertTrue(isinstance(123, int)) |
| assertFalse(x) | bool(x) is False | assertFalse(isinstance("hello", int)) |
| assertIs(a, b) | a is b | a = 1, b = a |
| assertIsNone(x) | x is None | book.price = None |
| assertIn(a, b) | a in b | assertIn(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.
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)palauttaa5käyttäenassertEqual-metodia. Metodin nimi:test_add_equal. - Tarkista, että
add(2, 2)ei palauta5käyttäenassertNotEqual-metodia. Metodin nimi:test_add_not_equal. - Tarkista, että
is_even(4)palauttaaTruekäyttäenassertTrue-metodia. Metodin nimi:test_is_even_true. - Tarkista, että
is_even(5)palauttaaFalsekäyttäenassertFalse-metodia. Metodin nimi:test_is_even_false. - Tarkista, että
get_item([10, 20, 30], 1)palauttaa saman olion kuin20käyttäenassertIs-metodia. Metodin nimi:test_get_item_is. - Tarkista, että
get_item([1, 2, 3], 10)palauttaaNonekäyttäenassertIsNone-metodia. Metodin nimi:test_get_item_is_none. - Tarkista, että
2sisältyy listaan[1, 2, 3]käyttäenassertIn-metodia. Metodin nimi:test_in_list. - Tarkista, että
add(1, 2)palauttaaint-tyyppisen olion käyttäenassertIsInstance-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
Kiitos palautteestasi!
single