Unit tests met pytest

Introductie tot testen in Python

Alexander Levin

Data Scientist

Wat is een unit test

Unit - het kleinste werkende deel dat je kunt testen.

  • Voorbeelden: functies, methoden, klassen, modules, enz.

$$

Unit testing - methode voor softwaretesten.

  • Laat je de juistheid van een unit controleren.

$$

Testcase - set met unitinvoer en verwachte uitvoer.

  • Vat een specifiek deel van het probleem samen.
Introductie tot testen in Python

Waarom unit tests gebruiken

Unit tests - vormen de basis voor het testen van “het grotere geheel” van de software.

Gebruiksmomenten:

  • Bij gevonden bugs
  • Tijdens ontwikkeling
  • Na doorgevoerde wijzigingen
Introductie tot testen in Python

Hoe maak je een unit test

Stappenplan:

  1. Bepaal welke units je test
  2. Definieer testcases (het creatieve deel):
    • "Wat zijn mogelijke uitkomsten?"
    • "Hoe kan de unit worden gebruikt?"
    • "Hoe moet de unit zich in al die gevallen gedragen?"
  3. Schrijf code voor elke testcase
  4. Voer de tests uit en analyseer de resultaten
Introductie tot testen in Python

Een unit test maken: voorbeeld

Te testen unit:

# Function for a sum of elements
def sum_of_arr(array:list) -> int:
    return sum(array)

Testcases:

  1. Invoer is een lijst met getallen (zoals verwacht) - geeft de sum terug
  2. Invoer is een lege lijst - geeft 0 terug
  3. Invoer is een lijst met één number - geeft dat number terug
Introductie tot testen in Python

Een unit test maken: code

# Test Case 1: regular array
def test_regular():
    assert sum_of_arr([1, 2, 3]) == 6
    assert sum_of_arr([100, 150]) == 250
# Test Case 2: empty list
def test_empty():
    assert sum_of_arr([]) == 0
# Test Case 3: one number
def test_one_number():
    assert sum_of_arr([10]) == 10
    assert sum_of_arr([0]) == 0
Introductie tot testen in Python

Samenvatting

Unit test - een test die controleert of een unit werkt zoals verwacht.

Testcase - invoer en uitvoer die een deel van het probleem samenvatten.

Gebruiksmomenten:

  • Bij gevonden bugs
  • Tijdens ontwikkeling
  • Na doorgevoerde wijzigingen

Testcases definiëren - vraagt creativiteit.

Introductie tot testen in Python

Laten we oefenen!

Introductie tot testen in Python

Preparing Video For Download...