Använda Assert-metoder i Unittest: Validering av Testresultat
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
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?
Fantastiskt!
Completion betyg förbättrat till 3.13
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