Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Använda Assert-metoder i Unittest: Validering av Testresultat | Behärska Unittest-Ramverket
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Python Strukturell Programmering

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

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)

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.

Uppgift

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) returnerar 5 med hjälp av assertEqual. Metodnamn: test_add_equal.
  • Kontrollera att add(2, 2) inte returnerar 5 med hjälp av assertNotEqual. Metodnamn: test_add_not_equal.
  • Kontrollera att is_even(4) returnerar True med hjälp av assertTrue. Metodnamn: test_is_even_true.
  • Kontrollera att is_even(5) returnerar False med hjälp av assertFalse. Metodnamn: test_is_even_false.
  • Kontrollera att resultatet av get_item([10, 20, 30], 1) är samma objekt som 20 med hjälp av assertIs. Metodnamn: test_get_item_is.
  • Kontrollera att get_item([1, 2, 3], 10) returnerar None med hjälp av assertIsNone. Metodnamn: test_get_item_is_none.
  • Kontrollera att 2 finns i listan [1, 2, 3] med hjälp av assertIn. Metodnamn: test_in_list.
  • Kontrollera att resultatet av add(1, 2) är en instans av int med hjälp av assertIsInstance. 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

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 2
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

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

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

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)

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.

Uppgift

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) returnerar 5 med hjälp av assertEqual. Metodnamn: test_add_equal.
  • Kontrollera att add(2, 2) inte returnerar 5 med hjälp av assertNotEqual. Metodnamn: test_add_not_equal.
  • Kontrollera att is_even(4) returnerar True med hjälp av assertTrue. Metodnamn: test_is_even_true.
  • Kontrollera att is_even(5) returnerar False med hjälp av assertFalse. Metodnamn: test_is_even_false.
  • Kontrollera att resultatet av get_item([10, 20, 30], 1) är samma objekt som 20 med hjälp av assertIs. Metodnamn: test_get_item_is.
  • Kontrollera att get_item([1, 2, 3], 10) returnerar None med hjälp av assertIsNone. Metodnamn: test_get_item_is_none.
  • Kontrollera att 2 finns i listan [1, 2, 3] med hjälp av assertIn. Metodnamn: test_in_list.
  • Kontrollera att resultatet av add(1, 2) är en instans av int med hjälp av assertIsInstance. 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

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 5. Kapitel 2
single

single

some-alt