Introductie tot Unittest in Python: Gestructureerde Unittests Schrijven
Unittest maakt deel uit van de standaardbibliotheek van Python, wat betekent dat geen extra installaties nodig zijn om te beginnen. Het is ontworpen rond het concept van testcases, die Python-klassen zijn afgeleid van de TestCase-klasse van het framework. Unittest is een uitstekend hulpmiddel voor iedereen die begint met testen, omdat het tests structureert op een manier die de principes van objectgeoriënteerd programmeren weerspiegelt.
De structuur van Unittest
In Unittest is elke test een methode binnen een subklasse van unittest.TestCase. Dit ontwerp stimuleert het groeperen van gerelateerde tests, wat kan helpen om testcode logisch te organiseren en leesbaarder te maken.
Een test schrijven met Unittest
Hier volgt een test van een eenvoudige functie die het gemiddelde van twee getallen berekent. Dit is de functie die getest wordt:
def calculate_average(num1, num2):
return (num1 + num2) / 2
Een testcase aanmaken
Voor het aanmaken van een testcase definieert u een klasse die overerft van unittest.TestCase. Binnen deze klasse kunnen vervolgens methoden worden gedefinieerd om de functie calculate_average te testen.
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)
- Eerst wordt het
import-statement gebruikt om het Unittest-module te laden; class TestCalculateAverage(unittest.TestCase)maakt een nieuwe testcase aan. Deze erft vanunittest.TestCase, dat de testfunctionaliteit biedt;- Elke methode in de klasse moet beginnen met
test_; - De methoden gebruiken specifieke assert-statements om te controleren of een voorwaarde waar is.
Voorbeeld van een Succesvolle Testuitvoer
Wanneer alle tests slagen in Unittest, is de uitvoer eenvoudig en geeft aan dat alle tests succesvol zijn uitgevoerd zonder fouten. Hier is een voorbeeld van een geslaagde testrun:
...
----------------------------------------------------------------------
Ran 3 tests in 0.002s
OK
Voorbeeld van een Mislukte Testuitvoer
Als één of meer tests mislukken, geeft de uitvoer details over de fouten, inclusief welke tests zijn mislukt en waarom. Hier is een voorbeeld van hoe het eruit kan zien wanneer een test faalt:
..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)
----------------------------------------------------------------------
Deze uitvoer bevat:
..Fgeeft aan dat er drie tests zijn uitgevoerd; de eerste twee zijn geslaagd (aangegeven door..), en de derde is mislukt (F);FAILED (failures=1)toont dat er één fout was onder de uitgevoerde tests;- Het gedetailleerde foutrapport begint met de testidentificatie (
test_average_floats) en de klasse (TestCalculateAverage). Het geeft een traceback naar de regel in de testcode die de fout veroorzaakte en legt de aard van de assertiefout uit, inclusief de verwachte waarde, de werkelijke waarde en de toegestane foutmarge.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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?
Geweldig!
Completion tarief verbeterd naar 3.13
Introductie tot Unittest in Python: Gestructureerde Unittests Schrijven
Veeg om het menu te tonen
Unittest maakt deel uit van de standaardbibliotheek van Python, wat betekent dat geen extra installaties nodig zijn om te beginnen. Het is ontworpen rond het concept van testcases, die Python-klassen zijn afgeleid van de TestCase-klasse van het framework. Unittest is een uitstekend hulpmiddel voor iedereen die begint met testen, omdat het tests structureert op een manier die de principes van objectgeoriënteerd programmeren weerspiegelt.
De structuur van Unittest
In Unittest is elke test een methode binnen een subklasse van unittest.TestCase. Dit ontwerp stimuleert het groeperen van gerelateerde tests, wat kan helpen om testcode logisch te organiseren en leesbaarder te maken.
Een test schrijven met Unittest
Hier volgt een test van een eenvoudige functie die het gemiddelde van twee getallen berekent. Dit is de functie die getest wordt:
def calculate_average(num1, num2):
return (num1 + num2) / 2
Een testcase aanmaken
Voor het aanmaken van een testcase definieert u een klasse die overerft van unittest.TestCase. Binnen deze klasse kunnen vervolgens methoden worden gedefinieerd om de functie calculate_average te testen.
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)
- Eerst wordt het
import-statement gebruikt om het Unittest-module te laden; class TestCalculateAverage(unittest.TestCase)maakt een nieuwe testcase aan. Deze erft vanunittest.TestCase, dat de testfunctionaliteit biedt;- Elke methode in de klasse moet beginnen met
test_; - De methoden gebruiken specifieke assert-statements om te controleren of een voorwaarde waar is.
Voorbeeld van een Succesvolle Testuitvoer
Wanneer alle tests slagen in Unittest, is de uitvoer eenvoudig en geeft aan dat alle tests succesvol zijn uitgevoerd zonder fouten. Hier is een voorbeeld van een geslaagde testrun:
...
----------------------------------------------------------------------
Ran 3 tests in 0.002s
OK
Voorbeeld van een Mislukte Testuitvoer
Als één of meer tests mislukken, geeft de uitvoer details over de fouten, inclusief welke tests zijn mislukt en waarom. Hier is een voorbeeld van hoe het eruit kan zien wanneer een test faalt:
..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)
----------------------------------------------------------------------
Deze uitvoer bevat:
..Fgeeft aan dat er drie tests zijn uitgevoerd; de eerste twee zijn geslaagd (aangegeven door..), en de derde is mislukt (F);FAILED (failures=1)toont dat er één fout was onder de uitgevoerde tests;- Het gedetailleerde foutrapport begint met de testidentificatie (
test_average_floats) en de klasse (TestCalculateAverage). Het geeft een traceback naar de regel in de testcode die de fout veroorzaakte en legt de aard van de assertiefout uit, inclusief de verwachte waarde, de werkelijke waarde en de toegestane foutmarge.
Bedankt voor je feedback!