Fixtures w unittest

Wprowadzenie do testowania w Pythonie

Alexander Levin

Data Scientist

Powtórzenie: fixtures

  • Fixture
    • przygotowane środowisko dla testu
    • oddziela przygotowanie od kodu testu
  • Fixture setup – konfigurowanie zasobów dla testów
  • Fixture teardown – czyszczenie przydzielonych zasobów
  • Przykład: przygotowanie jedzenia na piknik i sprzątanie na koniec
Wprowadzenie do testowania w Pythonie

Fixtures w bibliotece unittest

  • Fixture w unittest – przygotowanie potrzebne do wykonania jednego lub więcej testów
  • .setUp() – metoda wywoływana przed testem w celu przygotowania fixture
  • .tearDown() – metoda wywoływana po teście w celu czyszczenia środowiska
1 https://docs.python.org/3/library/unittest.html
Wprowadzenie do testowania w Pythonie

Przykładowy kod

import unittest

class TestLi(unittest.TestCase):
    # Fixture setup method
    def setUp(self):
        self.li = [i for i in range(100)]

    # Fixture teardown method
    def tearDown(self):
        self.li.clear()

    # Test method
    def test_your_list(self):
        self.assertIn(99, self.li)
        self.assertNotIn(100, self.li)
Wprowadzenie do testowania w Pythonie

Wielka litera U i wielka litera D

  • Poprawna składnia: setUp z wielką literą U i tearDown z wielką literą D.

    class TestLi(unittest.TestCase):
      # Fixture setup method
      def setUp(self):
          self.li = [i for i in range(100)]
    
      # Fixture teardown method
      def tearDown(self):
          self.li.clear()
    
Wprowadzenie do testowania w Pythonie

Przykładowy wynik

Polecenie: python3 -m unittest test_in_list.py

Wynik uruchomienia z .setUp() i .tearDown():

wynik uruchomienia z fixture

Wprowadzenie do testowania w Pythonie

Niepoprawnie nazwane metody

Wynik uruchomienia z .set_up():

wynik uruchomienia z fixture o błędnej nazwie

Wprowadzenie do testowania w Pythonie

Podsumowanie

  • Fixture w unittest – przygotowanie potrzebne do wykonania jednego lub więcej testów
  • Tworzenie fixture:
    • Implementacja metody .setUp()
    • Implementacja metody .tearDown()
  • .setUp() – metoda wywoływana przed testem w celu przygotowania środowiska.
  • .tearDown() – metoda wywoływana po teście w celu czyszczenia środowiska.
Wprowadzenie do testowania w Pythonie

Czas na ćwiczenia!

Wprowadzenie do testowania w Pythonie

Preparing Video For Download...