Fixtures v unittest

Úvod do testování v Pythonu

Alexander Levin

Data Scientist

Opakování: fixtures

  • Fixture
    • připravené prostředí pro test
    • oddělení přípravy od testovacího kódu
  • Nastavení fixture – příprava prostředků pro testy
  • Úklid fixture – uvolnění alokovaných prostředků
  • Příklad: příprava jídla na piknik a úklid po jeho skončení
Úvod do testování v Pythonu

Fixtures v knihovně unittest

  • Fixture v unittest – příprava potřebná k provedení jednoho nebo více testů
  • .setUp() – metoda volaná před testem k přípravě fixture
  • .tearDown() – metoda volaná po testu k vyčištění prostředí
1 https://docs.python.org/3/library/unittest.html
Úvod do testování v Pythonu

Ukázkový kód

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)
Úvod do testování v Pythonu

Velké U a velké D

  • Správná syntaxe: setUp s velkým U a tearDown s velkým 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()
    
Úvod do testování v Pythonu

Ukázkový výstup

Příkaz: python3 -m unittest test_in_list.py

Výstup spuštění s .setUp() a .tearDown():

výstup spuštění s fixture

Úvod do testování v Pythonu

Nesprávně pojmenované metody

Výstup spuštění s .set_up():

výstup spuštění s fixture se špatným názvem

Úvod do testování v Pythonu

Shrnutí

  • Fixture v unittest – příprava potřebná k provedení jednoho nebo více testů
  • Vytvoření fixture:
    • Implementace metody .setUp()
    • Implementace metody .tearDown()
  • .setUp() – metoda volaná před testem k přípravě fixture.
  • .tearDown() – metoda volaná po testu k vyčištění prostředí.
Úvod do testování v Pythonu

Lass uns üben!

Úvod do testování v Pythonu

Preparing Video For Download...