Знакомство с unittest

Введение в тестирование на Python

Alexander Levin

Data Scientist

Повторение ООП

  • ООП — парадигма программирования, основанная на объектах и классах.
  • Класс — шаблон объекта, который может содержать методы и атрибуты.
  • Метод — функция или процедура, принадлежащая классу.
  • Атрибут — переменная, принадлежащая классу.
  • Объект — экземпляр класса.
  • Пример класса 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

Наследование в ООП

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

Что такое unittest

  • unittest — встроенный фреймворк Python для автоматизации тестирования (устанавливается вместе с Python).
  • unittest — подходит не только для модульных тестов.
  • Основан на ООП: каждый тест-кейс — это класс, каждый тест — метод.
  • Тест-кейс — отдельный экземпляр тестирования.
  • Тест-сьют — набор тест-кейсов.
Введение в тестирование на Python

unittest vs. pytest

unittest

  • На основе ООП — требует создания тестовых классов)
  • Встроенный (устанавливается вместе с дистрибутивом 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

Методы утверждений

  • .assertEqual(), .assertNotEqual()
  • .assertTrue(), .assertFalse()
  • .assertIs(), .assertIsNone()
  • .assertIsInstance(), .assertIn()
  • .assertRaises()
  • И многие другие
Введение в тестирование на Python

Итоги

  • unittest — встроенный фреймворк Python на основе ООП для автоматизации тестирования
  • Тест-кейс — экземпляр тестирования в unittest
  • Чтобы создать тест:
    1. Объявите класс, наследующий от unittest.TestCase
    2. Определите тестовые функции
  • Методы утверждений
Введение в тестирование на Python

Давайте потренируемся!

Введение в тестирование на Python

Preparing Video For Download...