single
Använda Assert-metoder i Unittest: Validering av Testresultat
Svep för att visa menyn
Metoderna assert är en del av klassen unittest.TestCase och används för att kontrollera villkor i dina tester.
Enkelt uttryckt avslutas varje testmetod i Test-klassen med ett påstående som self.assert.
Vanligt förekommande assert-metoder
| 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) |
Dessutom används assertRaises(Error, func, *args, **kwargs) för att testa att ett fel uppstår. Till exempel:
with self.assertRaises(ValueError):
int("xyz")
Detta kontrollerar att konvertering av "xyz" till integer utlöser ValueError.
Swipe to start coding
Din uppgift är att öva på att använda olika assert-metoder i unittest-ramverket. Komplettera klassen TestFunctions genom att skriva separata testmetoder för var och en av följande kontroller. Använd exakt de metodnamn som anges nedan för varje kontroll.
- Kontrollera att
add(2, 3)returnerar5med hjälp avassertEqual. Metodnamn:test_add_equal. - Kontrollera att
add(2, 2)inte returnerar5med hjälp avassertNotEqual. Metodnamn:test_add_not_equal. - Kontrollera att
is_even(4)returnerarTruemed hjälp avassertTrue. Metodnamn:test_is_even_true. - Kontrollera att
is_even(5)returnerarFalsemed hjälp avassertFalse. Metodnamn:test_is_even_false. - Kontrollera att resultatet av
get_item([10, 20, 30], 1)är samma objekt som20med hjälp avassertIs. Metodnamn:test_get_item_is. - Kontrollera att
get_item([1, 2, 3], 10)returnerarNonemed hjälp avassertIsNone. Metodnamn:test_get_item_is_none. - Kontrollera att
2finns i listan[1, 2, 3]med hjälp avassertIn. Metodnamn:test_in_list. - Kontrollera att resultatet av
add(1, 2)är en instans avintmed hjälp avassertIsInstance. Metodnamn:test_add_is_instance.
Skriv en testmetod för varje kontroll och använd endast de angivna metodnamnen ovan. Varje testmetod ska använda endast en assert-metod.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal