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