Kennismaken met unittest

Introductie tot testen in Python

Alexander Levin

Data Scientist

OOP-herhaling

  • OOP - programmeerparadigma gebaseerd op objecten en klassen.
  • Klasse - sjabloon van een object met methoden en attributen.
  • Methode - functie/procedure die bij een klasse hoort.
  • Attribuut - variabele die bij een klasse hoort.
  • Object - instantie van een klasse.
  • Voorbeeld van een Python-klasse:
    class Rectangle:
      # Constructor of Rectangle
      def __init__(self, a, b):
          self.a = a
          self.b = b
      # Area method
      def get_area(self):
          return self.a * self.b
    # Usage example
    r = Rectangle(4, 5)
    print(r.get_area())
    
>> 20
Introductie tot testen in Python

OOP-overerving

  • Klassen kunnen eigenschappen van andere klassen overerven.
  • Zet de ouderklasse tussen haakjes na de naam van de nieuwe klasse.
    class RedRectangle(Rectangle):
      self.color = 'red'
    
Introductie tot testen in Python

Wat is unittest

  • unittest - ingebouwd Python-framework voor testautomatisering (geïnstalleerd met Python).
  • unittest - niet alleen voor unit tests.
  • Gebaseerd op OOP: elke test case is een klasse, elke test een methode.
  • Test case - een testinstantie.
  • Test suite - een verzameling test cases.
Introductie tot testen in Python

unittest vs. pytest

unittest

  • OOP-gebaseerd - je maakt testklassen)
  • Ingebouwd (geïnstalleerd met de Python-distributie)
  • Meer assertiemethoden

pytest

  • Functie-gebaseerd - zoekt scripts en functies die beginnen met test_
  • Extern pakket (apart te installeren naast de Python-distributie)

  • Minder assertiemethoden

Introductie tot testen in Python

Een test maken met unittest

Test van de machtsoperator:

import unittest

# Declaring the TestCase class
class TestSquared(unittest.TestCase):
    # Defining the test
    def test_negative(self):
        self.assertEqual((-3) ** 2, 9)
Introductie tot testen in Python

Assertiemethoden

  • .assertEqual(), .assertNotEqual()
  • .assertTrue(), .assertFalse()
  • .assertIs(), .assertIsNone()
  • .assertIsInstance(), .assertIn()
  • .assertRaises()
  • En meer
Introductie tot testen in Python

Samenvatting

  • unittest - ingebouwd Python-framework voor testautomatisering op basis van OOP
  • Test case - een testinstantie in unittest
  • Test maken:
    1. Definieer een klasse die erft van unittest.TestCase
    2. Schrijf testfuncties
  • Assertiemethoden
Introductie tot testen in Python

Laten we oefenen!

Introductie tot testen in Python

Preparing Video For Download...