Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Brug af Assert-metoder i Unittest: Validering af Testresultater | Beherskelse af Unittest-Rammeværket
Quizzes & Challenges
Quizzes
Challenges
/
Python Strukturel Programmering

bookBrug af Assert-metoder i Unittest: Validering af Testresultater

assert-metoderne er en del af unittest.TestCase-klassen og bruges til at kontrollere betingelser i dine tests. Kort sagt afsluttes hver testmetode i Test-klassen med en erklæring som self.assert.

Almindeligt anvendte assert-metoder

MethodCheckExample
assertEqual(a, b)a == bassertEqual(sum([1, 2, 3]), 6)
assertNotEqual(a, b)a != bassertNotEqual(1, 2)
assertTrue(x)bool(x) er TrueassertTrue(isinstance(123, int))
assertFalse(x)bool(x) er FalseassertFalse(isinstance("hello", int))
assertIs(a, b)a er ba = 1, b = a
assertIsNone(x)x er Nonebook.price = None
assertIn(a, b)a i bassertIn(2, [1, 2, 3])
assertIsInstance(a, b)isinstance(a, b)assertIsInstance(123, int)

Desuden bruges assertRaises(Error, func, *args, **kwargs) til at teste, at en fejl bliver udløst. For eksempel:

with self.assertRaises(ValueError):
    int("xyz")

Dette kontrollerer, at konvertering af "xyz" til et heltal udløser ValueError.

Opgave

Swipe to start coding

Din opgave er at øve dig i at bruge forskellige assert-metoder i unittest-frameworket. Fuldfør TestFunctions-klassen ved at skrive separate testmetoder for hver af de følgende kontroller. Brug de præcise metodenavne, der er angivet nedenfor, til hver kontrol.

  • Kontroller at add(2, 3) returnerer 5 ved hjælp af assertEqual. Navngiv metoden: test_add_equal.
  • Kontroller at add(2, 2) ikke returnerer 5 ved hjælp af assertNotEqual. Navngiv metoden: test_add_not_equal.
  • Kontroller at is_even(4) returnerer True ved hjælp af assertTrue. Navngiv metoden: test_is_even_true.
  • Kontroller at is_even(5) returnerer False ved hjælp af assertFalse. Navngiv metoden: test_is_even_false.
  • Kontroller at resultatet af get_item([10, 20, 30], 1) er det samme objekt som 20 ved hjælp af assertIs. Navngiv metoden: test_get_item_is.
  • Kontroller at get_item([1, 2, 3], 10) returnerer None ved hjælp af assertIsNone. Navngiv metoden: test_get_item_is_none.
  • Kontroller at 2 findes i listen [1, 2, 3] ved hjælp af assertIn. Navngiv metoden: test_in_list.
  • Kontroller at resultatet af add(1, 2) er en instans af int ved hjælp af assertIsInstance. Navngiv metoden: test_add_is_instance.

Skriv én testmetode for hver kontrol og brug kun de angivne metodenavne ovenfor. Hver testmetode skal kun bruge én assert-metode.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 2
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

bookBrug af Assert-metoder i Unittest: Validering af Testresultater

Stryg for at vise menuen

assert-metoderne er en del af unittest.TestCase-klassen og bruges til at kontrollere betingelser i dine tests. Kort sagt afsluttes hver testmetode i Test-klassen med en erklæring som self.assert.

Almindeligt anvendte assert-metoder

MethodCheckExample
assertEqual(a, b)a == bassertEqual(sum([1, 2, 3]), 6)
assertNotEqual(a, b)a != bassertNotEqual(1, 2)
assertTrue(x)bool(x) er TrueassertTrue(isinstance(123, int))
assertFalse(x)bool(x) er FalseassertFalse(isinstance("hello", int))
assertIs(a, b)a er ba = 1, b = a
assertIsNone(x)x er Nonebook.price = None
assertIn(a, b)a i bassertIn(2, [1, 2, 3])
assertIsInstance(a, b)isinstance(a, b)assertIsInstance(123, int)

Desuden bruges assertRaises(Error, func, *args, **kwargs) til at teste, at en fejl bliver udløst. For eksempel:

with self.assertRaises(ValueError):
    int("xyz")

Dette kontrollerer, at konvertering af "xyz" til et heltal udløser ValueError.

Opgave

Swipe to start coding

Din opgave er at øve dig i at bruge forskellige assert-metoder i unittest-frameworket. Fuldfør TestFunctions-klassen ved at skrive separate testmetoder for hver af de følgende kontroller. Brug de præcise metodenavne, der er angivet nedenfor, til hver kontrol.

  • Kontroller at add(2, 3) returnerer 5 ved hjælp af assertEqual. Navngiv metoden: test_add_equal.
  • Kontroller at add(2, 2) ikke returnerer 5 ved hjælp af assertNotEqual. Navngiv metoden: test_add_not_equal.
  • Kontroller at is_even(4) returnerer True ved hjælp af assertTrue. Navngiv metoden: test_is_even_true.
  • Kontroller at is_even(5) returnerer False ved hjælp af assertFalse. Navngiv metoden: test_is_even_false.
  • Kontroller at resultatet af get_item([10, 20, 30], 1) er det samme objekt som 20 ved hjælp af assertIs. Navngiv metoden: test_get_item_is.
  • Kontroller at get_item([1, 2, 3], 10) returnerer None ved hjælp af assertIsNone. Navngiv metoden: test_get_item_is_none.
  • Kontroller at 2 findes i listen [1, 2, 3] ved hjælp af assertIn. Navngiv metoden: test_in_list.
  • Kontroller at resultatet af add(1, 2) er en instans af int ved hjælp af assertIsInstance. Navngiv metoden: test_add_is_instance.

Skriv én testmetode for hver kontrol og brug kun de angivne metodenavne ovenfor. Hver testmetode skal kun bruge én assert-metode.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 5. Kapitel 2
single

single

some-alt