Fixtures i unittest

Introduktion till testning i Python

Alexander Levin

Data Scientist

Fixtures – en repetition

  • Fixture
    • en förberedd miljö för ett test
    • separerar förberedelserna från testkoden
  • Fixture setup – att sätta upp resurser för tester
  • Fixture teardown – att städa upp ("riva ned") resurser som allokerats
  • Exempel: förbereda maten inför en picknick och städa upp efteråt
Introduktion till testning i Python

Fixtures i unittest-biblioteket

  • Fixture i unittest – den förberedelse som krävs för ett eller flera tester
  • .setUp() – en metod som anropas för att förbereda fixture innan testet körs
  • .tearDown() – en metod som anropas efter testmetoden för att städa upp miljön
1 https://docs.python.org/3/library/unittest.html
Introduktion till testning i Python

Exempelkod

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)
Introduktion till testning i Python

Stort U och stort D

  • Rätt syntax: setUp med stort U och tearDown med stort 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()
    
Introduktion till testning i Python

Exempelutdata

Kommandot: python3 -m unittest test_in_list.py

Utdata från en körning med .setUp() och .tearDown():

utdata från en körning med en fixture

Introduktion till testning i Python

Felaktigt namngivna metoder

Utdata från en körning med .set_up():

utdata från en körning med en fixture med fel namn

Introduktion till testning i Python

Sammanfattning

  • Fixture i unittest – den förberedelse som krävs för ett eller flera tester
  • Så skapar du en fixture:
    • Implementera metoden .setUp()
    • Implementera metoden .tearDown()
  • .setUp() – en metod som anropas för att förbereda fixture innan testet körs.
  • .tearDown() – en metod som anropas efter testmetoden för att städa upp miljön.
Introduktion till testning i Python

Nu kör vi en övning!

Introduktion till testning i Python

Preparing Video For Download...