Seznámení s unittest

Úvod do testování v Pythonu

Alexander Levin

Data Scientist

Opakování OOP

  • OOP – programovací paradigma založené na objektech a třídách.
  • Třída – šablona objektu, která může obsahovat metody a atributy.
  • Metoda – funkce nebo procedura patřící do třídy.
  • Atribut – proměnná patřící do třídy.
  • Objekt – instance třídy.
  • Příklad třídy v Pythonu:
    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
Úvod do testování v Pythonu

Dědičnost v OOP

  • Třídy mohou dědit vlastnosti z jiných tříd.
  • Nadřazenou třídu uveďte do závorek za názvem nové třídy.
    class RedRectangle(Rectangle):
      self.color = 'red'
    
Úvod do testování v Pythonu

Co je unittest

  • unittest – vestavěný Python framework pro testování (instaluje se s Python).
  • unittestnejen pro unit testy.
  • Založen na OOP: každý testovací případ je třída, každý test je metoda.
  • Testovací případ – instance testování.
  • Testovací sada – kolekce testovacích případů.
Úvod do testování v Pythonu

unittest vs. pytest

unittest

  • Založen na OOP – vyžaduje vytváření testovacích tříd
  • Vestavěný (instaluje se s distribucí Python)
  • Více metod tvrzení

pytest

  • Založen na funkcích – hledá skripty a funkce začínající na test_
  • Balíček třetí strany (nutno nainstalovat samostatně)

  • Méně metod tvrzení

Úvod do testování v Pythonu

Jak vytvořit test pomocí unittest

Test operátoru umocňování:

import unittest

# Declaring the TestCase class
class TestSquared(unittest.TestCase):
    # Defining the test
    def test_negative(self):
        self.assertEqual((-3) ** 2, 9)
Úvod do testování v Pythonu

Metody tvrzení

  • .assertEqual(), .assertNotEqual()
  • .assertTrue(), .assertFalse()
  • .assertIs(), .assertIsNone()
  • .assertIsInstance(), .assertIn()
  • .assertRaises()
  • Mnoho dalších
Úvod do testování v Pythonu

Shrnutí

  • unittest – OOP framework pro testování, součást Pythonu
  • Testovací případ – testovací instance v unittest
  • Vytvoření testu:
    1. Deklarujte třídu dědící z unittest.TestCase
    2. Definujte testovací funkce
  • Metody tvrzení
Úvod do testování v Pythonu

Pojďme si procvičit!

Úvod do testování v Pythonu

Preparing Video For Download...