Знайомство з unittest

Вступ до тестування в Python

Alexander Levin

Data Scientist

Підсумок OOP

  • OOP — парадигма програмування на обʼєктах і класах.
  • Клас — шаблон обʼєкта з методами та атрибутами.
  • Метод — функція або процедура класу.
  • Атрибут — змінна класу.
  • Обʼєкт — екземпляр класу.
  • Приклад класу Python:
    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
Вступ до тестування в Python

Наслідування в OOP

  • Класи можуть наслідувати властивості інших класів.
  • Запишіть батьківський клас у дужках після назви нового класу.
    class RedRectangle(Rectangle):
      self.color = 'red'
    
Вступ до тестування в Python

Що таке unittest

  • unittest — вбудований у Python фреймворк для автоматизації тестів (входить до складу Python).
  • unittestне лише для модульних тестів.
  • На OOP: кожен тесткейс — це клас, а кожен тест — метод.
  • Test case — окремий випадок тестування.
  • Test suite — набір тесткейсів.
Вступ до тестування в Python

unittest vs. pytest

unittest

  • На OOP — вимагає створювати тестові класи)
  • Вбудований (постачається з дистрибуцією Python)
  • Більше методів перевірки тверджень

pytest

  • На функціях — шукає скрипти й функції, що починаються з test_
  • Сторонній пакет (потрібно встановити окремо від дистрибуції Python)

  • Менше методів перевірки тверджень

Вступ до тестування в Python

Як створити тест у unittest

Тест оператора піднесення до степеня:

import unittest

# Declaring the TestCase class
class TestSquared(unittest.TestCase):
    # Defining the test
    def test_negative(self):
        self.assertEqual((-3) ** 2, 9)
Вступ до тестування в Python

Методи перевірок (assertions)

  • .assertEqual(), .assertNotEqual()
  • .assertTrue(), .assertFalse()
  • .assertIs(), .assertIsNone()
  • .assertIsInstance(), .assertIn()
  • .assertRaises()
  • Та багато інших
Вступ до тестування в Python

Підсумок

  • unittest — вбудований у Python OOP-фреймворк для автоматизації тестів
  • Test case — окремий випадок тестування в unittest
  • Щоб створити тест:
    1. Оголосіть клас, що наслідує unittest.TestCase
    2. Визначте тестові функції
  • Методи перевірок
Вступ до тестування в Python

Давайте потренуємось!

Вступ до тестування в Python

Preparing Video For Download...