Testen Organiseren en Uitvoeren met pytest
Veeg om het menu te tonen
Wanneer je schone, expressieve en gemakkelijk onderhoudbare testcode in Python wilt schrijven, is pytest een populaire keuze. In tegenstelling tot het ingebouwde unittest-framework, dat een rigide, op klassen gebaseerde structuur volgt en specifieke assertiemethoden zoals self.assertEqual vereist, kun je met pytest standaard Python assert-statements gebruiken binnen eenvoudige functies. Dit vermindert de hoeveelheid standaardcode drastisch en maakt je tests beknopter, omdat je logica niet meer hoeft te verpakken in complexe klassenhiërarchieën of tientallen framework-specifieke assertienamen hoeft te onthouden om een eenvoudig resultaat te verifiëren.
Een van de krachtigste functies van pytest is het systeem voor het ontdekken van tests. Door simpelweg pytest uit te voeren in je projectmap, worden automatisch alle bestanden gevonden die overeenkomen met het patroon test_*.py of *_test.py en worden alle functies binnen die bestanden uitgevoerd die beginnen met test_. Dit betekent dat je niet handmatig hoeft aan te geven welke tests uitgevoerd moeten worden - pytest regelt dit voor je.
Een ander belangrijk voordeel is het gebruik van fixtures. Fixtures verzorgen het voorbereiden en opruimen van bronnen die je tests nodig hebben, zoals tijdelijke bestanden of databaseverbindingen, op een manier die eenvoudig herbruikbaar is. Je decoreert simpelweg een functie met @pytest.fixture en vraagt deze vervolgens als input in je testfuncties. Dit houdt je code modulair en voorkomt dat je steeds dezelfde setup-logica moet herhalen.
Om te beginnen met pytest, moet je het eerst installeren. Gebruik het volgende commando in je terminal:
pip install pytest
Dit zal de nieuwste versie van pytest downloaden en installeren, zodat je direct kunt beginnen met het schrijven en uitvoeren van je tests.
Hier volgt een praktische demonstratie van het gebruik voor het schrijven van functiegebaseerde tests en het definiëren van herbruikbare fixtures.
import pytest
# A simple function to test
def add(a, b):
return a + b
# Define a fixture that provides test data
@pytest.fixture
def sample_numbers():
return (3, 5)
# Test function using the fixture
def test_add_with_fixture(sample_numbers):
a, b = sample_numbers
result = add(a, b)
assert result == 8
# Another simple test function
def test_add_negative_numbers():
assert add(-2, -4) == -6
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.