Introduksjon til Unittest i Python: Skriving av Strukturerte Enhetstester
Unittest er en del av Pythons standardbibliotek, noe som betyr at ingen ekstra installasjoner er nødvendig for å komme i gang. Det er bygget rundt konseptet testtilfeller, som er Python-klasser avledet fra rammeverkets TestCase-klasse. Unittest er et utmerket verktøy for alle som begynner med testing, fordi det strukturerer tester på en måte som gjenspeiler prinsippene for objektorientert programmering.
Strukturen til Unittest
I Unittest er hver test en metode i en underklasse av unittest.TestCase. Dette designet oppmuntrer til å gruppere relaterte tester sammen, noe som kan bidra til å organisere testkoden logisk og gjøre den mer lesbar.
Skrive en test med Unittest
Her testes en enkel funksjon som beregner gjennomsnittet av to tall. Her er funksjonen som skal testes:
def calculate_average(num1, num2):
return (num1 + num2) / 2
Opprette et testtilfelle
For å opprette et testtilfelle defineres en klasse som arver fra unittest.TestCase. I denne klassen kan det defineres metoder for å teste calculate_average-funksjonen.
import unittest
class TestCalculateAverage(unittest.TestCase):
def test_integers(self):
self.assertEqual(calculate_average(10, 20), 15)
def test_floats(self):
self.assertAlmostEqual(calculate_average(10.5, 20.5), 15.5)
- Først utføres
importav Unittest-modulen, som er en del av Pythons standardbibliotek; class TestCalculateAverage(unittest.TestCase)oppretter et nytt testtilfelle. Den arver fraunittest.TestCase, som gir testfunksjonalitet;- Hver metode i klassen bør starte med
test_; - Metodene bruker spesifikke assert-setninger for å kontrollere om betingelsen er sann.
Eksempel på vellykket testutskrift
Når alle tester består i Unittest, er utdataene enkle og indikerer at alle tester ble kjørt uten feil. Her er et eksempel på en vellykket testrunde:
...
----------------------------------------------------------------------
Ran 3 tests in 0.002s
OK
Eksempel på mislykket testutskrift
Hvis én eller flere tester feiler, vil utdataene gi detaljer om feilene, inkludert hvilke tester som feilet og hvorfor. Her er et eksempel på hvordan det kan se ut når en test feiler:
..F
----------------------------------------------------------------------
Ran 3 tests in 0.003s
FAILED (failures=1)
======================================================================
FAIL: test_average_floats (test_module.TestCalculateAverage)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/path/to/test_module.py", line 10, in test_average_floats
self.assertAlmostEqual(calculate_average(10.0, 20.0), 15.1)
AssertionError: 15.0 != 15.1 within 7 places (0.10000000000000142 difference)
----------------------------------------------------------------------
Denne utskriften inkluderer:
..Findikerer at tre tester ble kjørt; de to første bestod (representert med..), og den tredje feilet (F);FAILED (failures=1)viser at det var én feil blant testene som ble kjørt;- Den detaljerte feilrapporten starter med testidentifikatoren (
test_average_floats) og klassen (TestCalculateAverage). Den gir en sporingslogg til linjen i testkoden som forårsaket feilen og forklarer hva som gikk galt i påstanden, inkludert forventet verdi, faktisk verdi og akseptabel feilmargin.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Can you explain what the different assert methods in Unittest do?
How do I run these tests from the command line?
What should I do if a test fails?
Fantastisk!
Completion rate forbedret til 3.13
Introduksjon til Unittest i Python: Skriving av Strukturerte Enhetstester
Sveip for å vise menyen
Unittest er en del av Pythons standardbibliotek, noe som betyr at ingen ekstra installasjoner er nødvendig for å komme i gang. Det er bygget rundt konseptet testtilfeller, som er Python-klasser avledet fra rammeverkets TestCase-klasse. Unittest er et utmerket verktøy for alle som begynner med testing, fordi det strukturerer tester på en måte som gjenspeiler prinsippene for objektorientert programmering.
Strukturen til Unittest
I Unittest er hver test en metode i en underklasse av unittest.TestCase. Dette designet oppmuntrer til å gruppere relaterte tester sammen, noe som kan bidra til å organisere testkoden logisk og gjøre den mer lesbar.
Skrive en test med Unittest
Her testes en enkel funksjon som beregner gjennomsnittet av to tall. Her er funksjonen som skal testes:
def calculate_average(num1, num2):
return (num1 + num2) / 2
Opprette et testtilfelle
For å opprette et testtilfelle defineres en klasse som arver fra unittest.TestCase. I denne klassen kan det defineres metoder for å teste calculate_average-funksjonen.
import unittest
class TestCalculateAverage(unittest.TestCase):
def test_integers(self):
self.assertEqual(calculate_average(10, 20), 15)
def test_floats(self):
self.assertAlmostEqual(calculate_average(10.5, 20.5), 15.5)
- Først utføres
importav Unittest-modulen, som er en del av Pythons standardbibliotek; class TestCalculateAverage(unittest.TestCase)oppretter et nytt testtilfelle. Den arver fraunittest.TestCase, som gir testfunksjonalitet;- Hver metode i klassen bør starte med
test_; - Metodene bruker spesifikke assert-setninger for å kontrollere om betingelsen er sann.
Eksempel på vellykket testutskrift
Når alle tester består i Unittest, er utdataene enkle og indikerer at alle tester ble kjørt uten feil. Her er et eksempel på en vellykket testrunde:
...
----------------------------------------------------------------------
Ran 3 tests in 0.002s
OK
Eksempel på mislykket testutskrift
Hvis én eller flere tester feiler, vil utdataene gi detaljer om feilene, inkludert hvilke tester som feilet og hvorfor. Her er et eksempel på hvordan det kan se ut når en test feiler:
..F
----------------------------------------------------------------------
Ran 3 tests in 0.003s
FAILED (failures=1)
======================================================================
FAIL: test_average_floats (test_module.TestCalculateAverage)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/path/to/test_module.py", line 10, in test_average_floats
self.assertAlmostEqual(calculate_average(10.0, 20.0), 15.1)
AssertionError: 15.0 != 15.1 within 7 places (0.10000000000000142 difference)
----------------------------------------------------------------------
Denne utskriften inkluderer:
..Findikerer at tre tester ble kjørt; de to første bestod (representert med..), og den tredje feilet (F);FAILED (failures=1)viser at det var én feil blant testene som ble kjørt;- Den detaljerte feilrapporten starter med testidentifikatoren (
test_average_floats) og klassen (TestCalculateAverage). Den gir en sporingslogg til linjen i testkoden som forårsaket feilen og forklarer hva som gikk galt i påstanden, inkludert forventet verdi, faktisk verdi og akseptabel feilmargin.
Takk for tilbakemeldingene dine!