Skip to main content

Unit Testen

1 Wat is testen? Waarom is het belangrijk?

đŸŽ¯ Leerdoelen

  • Je begrijpt wat testen is en waarom we het doen.
  • Je herkent verschillende soorten testen.
  • Je kunt een eenvoudige functie handmatig testen.

💡 Uitleg

Testen betekent controleren of je code het juiste doet. Als je iets verandert, wil je zeker weten dat het nog steeds werkt. Denk aan:

  • Een rekenmachine die ineens verkeerde antwoorden geeft.
  • Een webshop die verkeerde prijzen toont.

Daarom testen we onze code – om fouten te voorkomen en vertrouwen te krijgen in wat we gemaakt hebben.

📚 Testsoorten

Er zijn verschillende soorten testen. Hieronder zie je een overzicht:

Testsoort Wat test je? Voorbeeld
Unit test ÉÊn functie of klein onderdeel Klopt bereken_korting()?
Integratietest Samenwerking tussen onderdelen Voegt bereken_korting() + bereken_verzendkosten() alles goed op?
Systeemtest Het hele programma Werkt de volledige webshop van begin tot eind?
Acceptatietest Voldoet het aan de wensen van de gebruiker? Kan de klant een product kiezen en succesvol bestellen?

In deze lessenserie focussen we op unit tests: kleine, duidelijke tests waarmee je functies controleert.

đŸ› ī¸ Opdracht 1 – winkelmandje.py

Maak een nieuw Python-bestand aan met de naam winkelmandje.py en doe het volgende:

  1. Schrijf een functie bereken_totaalprijs(prijzen) die een lijst van prijzen optelt.
  2. Voorbeeld: bereken_totaalprijs([2.50, 4.00, 3.25]) moet 9.75 opleveren.
  3. Print het resultaat van je functie met verschillende lijsten.
  4. Probeer ook een lege lijst – wat gebeurt er?

🧠 Reflectie

  • Welk van de testsoorten vind jij het belangrijkste? Leg in eigen woorden uit waarom!
  • Wat gebeurt er als je iets fout typt in je functie?
  • Wat als je functie 3 keer voorkomt in een groter programma – hoe test je dat?
  • Hoe zou je dit automatisch kunnen controleren?

📤 Inleveren

  • Lever het bestand winkelmandje.py in (.py).
  • Beantwoord de drie reflectievragen in een apart .txt of .pdf bestand.

2 Je eerste unit test schrijven

đŸŽ¯ Leerdoelen

  • Je kunt een eenvoudige test schrijven met de module unittest.
  • Je weet wat assertEqual() doet.
  • Je voert je testbestand uit en controleert of het slaagt.

💡 Uitleg

In de vorige les heb je een functie gemaakt die de totaalprijs berekent van een lijst met bedragen. Nu ga je leren hoe je automatisch kunt testen of die functie goed werkt.

Hiervoor gebruik je de module unittest. Je schrijft testfuncties waarin je verwacht wat de uitkomst moet zijn. Als die klopt, krijg je een groene melding. Als die fout is, zie je precies waar het misgaat.

Voorbeeldtest:

import unittest

def bereken_totaalprijs(prijzen):
    totaal = 0
    for prijs in prijzen:
        totaal += prijs
    return totaal

class TestTotaalprijs(unittest.TestCase):
    def test_drie_bedragen(self):
        self.assertEqual(bereken_totaalprijs([2.50, 4.00, 3.25]), 9.75)

    def test_lege_lijst(self):
        self.assertEqual(bereken_totaalprijs([]), 0)

    def test_een_bedrag(self):
        self.assertEqual(bereken_totaalprijs([5.00]), 5.00)

    def test_nog_een_bedrag(self):
        self.assertEqual(bereken_totaalprijs([5.00, 2.00]), 8.00)

if __name__ == '__main__':
    unittest.main()

Je voert het testbestand uit met:

python totaalprijs_test.py

đŸ› ī¸ Opdracht 1 – totaalprijs_test.py

Je gaat nu je eigen functie bereken_totaalprijs() uit les 1 testen.

  1. Maak een nieuw bestand aan: totaalprijs_test.py.
  2. Kopieer je functie bereken_totaalprijs(prijzen) uit winkelmandje.py.
  3. Schrijf een testklasse TestTotaalprijs waarin je de functie test met unittest.
  4. Schrijf minstens drie tests:
    • Lijst met meerdere bedragen (bijv. [2.50, 3.50]) → controleer of totaal klopt.
    • Lege lijst → verwacht 0.
    • Lijst met ÊÊn bedrag → verwacht dat bedrag.
  5. Voer je bestand uit in de terminal met python totaalprijs_test.py.

🧠 Reflectie

  • Wat gebeurt er als een test slaagt? En als hij faalt?
  • Wat zijn de voordelen van automatisch testen vergeleken met handmatig printen?
  • Hoe weet je zeker dat je test goed geschreven is?

📤 Inleveren

  • Lever het bestand totaalprijs_test.py in (.py).
  • Lever een .txt of .pdf-bestand in met antwoorden op de reflectievragen.

3 Testen met lijsten en tekst