Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Testen Organiseren en Uitvoeren met pytest | Testing with unittest and pytest
Python Structureel Programmeren

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
question mark

Wat is een belangrijk voordeel van het gebruik van pytest ten opzichte van unittest?

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 5. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 5. Hoofdstuk 6
some-alt