Skrive Tester med Unittest
Sveip for å vise menyen
Når du vil sikre at koden din fungerer som forventet, er det viktig å skrive automatiserte tester. Pythons unittest-modul er et innebygd rammeverk som lar deg lage og organisere tester enkelt. Du skriver testtilfeller ved å opprette klasser som arver fra unittest.TestCase. Inne i disse klassene definerer du metoder som har navn som starter med test_. Hver metode tester et spesifikt aspekt av koden din.
En test suite er en samling av testtilfeller som kan kjøres sammen. Som standard oppdager og kjører unittest alle test_-metoder i dine TestCase-klasser. For å sjekke om koden din gir forventede resultater, bruker du påstandsmetoder som assertEqual, assertTrue, assertFalse og assertRaises. Disse påstandsmetodene sammenligner faktiske resultater med forventede, og rapporterer feil hvis de ikke stemmer overens.
For å kjøre testene dine kan du bruke kommandolinjen eller kalle unittest.main() nederst i testfilen din.
assertRaises følger et annet mønster sammenlignet med andre påstandsmetoder som assertEqual eller assertTrue. I stedet for å sjekke en sluttverdi, fungerer den som en kontekstbehandler ved bruk av with-setningen for å lage en beskyttet sone. Dette gjør at testen kan overvåke koden mens den kjører og "fange" den forventede feilen.
1234567891011121314151617181920212223import unittest def add(a, b): return a + b def divide(a, b): return a / b class TestMathFunctions(unittest.TestCase): def test_add_positive_numbers(self): self.assertEqual(add(2, 3), 5) def test_add_negative_numbers(self): self.assertEqual(add(-2, -3), -5) def test_divide_normal(self): self.assertAlmostEqual(divide(10, 2), 5.0) def test_divide_by_zero(self): with self.assertRaises(ZeroDivisionError): divide(10, 0) unittest.main(argv=['first-arg-is-ignored'], exit=False)
Funksjonen unittest.main() i dette kapittelet inkluderer noen ekstra parametere som kun er nødvendige for dette læringsmiljøet. De hjelper koden å kjøre riktig på plattformen og er ikke en del av de sentrale Python-konseptene du trenger å lære nå.
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