Код
#статьи

Как происходит модульное тестирование в Python

Без тестирования не создать качественное веб-приложение. Рассказываем, как протестировать код на Python.

 vlada_maestro / shutterstock

Что такое модульное тестирование

Модульное тестирование позволяет проверить, правильно ли работают отдельные части программы и соответствуют ли они заявленным требованиям. Разработчики используют модульные, или unit-тесты
по-разному, в зависимости от ситуации и задач:

  • при подходе TDD (Test-Driven Development, разработка через тестирование) пишут тесты до начала создания приложения, а потом ориентируются на них в процессе программирования;
  • при рефакторинге всей кодовой базы или отдельных ее частей тесты пишут перед началом изменения программы, чтобы не «поломать» ее функциональность;
  • при найденных в программе багах unit-тесты пишут для удобства их отслеживания и исправления.

Модуль применительно к unit-тестированию — это наименьший компонент, который можно скомпилировать.

Для модульного тестирования в языке Python есть встроенный модуль PyUnit (unittest). Вот некоторые из его преимуществ:

  • возможность автоматизированного тестирования;
  • возможность собирать тесты в группы;
  • уменьшение дублирования кода при схожих объектах тестирования благодаря ООП-стилю;
  • возможность собирать результаты выполнения тестов для отчета.

Инструментарий unittest состоит из четырех основных частей:

  • test case — то, из чего собираются тесты, наименьшая единица тестирования;
  • test fixture — среда выполнения тестов, используется для упрощения подготовки нужного состояния test case, тем самым экономя время;
  • test suite — набор готовых тестовых случаев, позволяет упорядочить и управлять комплектами тестов;
  • test runner — компонент, который запускает тесты и выводит пользователю результат.

Помимо встроенного unittest, существует много фреймворков для тестирования кода на Python: Pytest, Nose, Allure, Selene, Selenium и другие.

Пример: тестирование приложения с помощью unittest

Допустим, у нас есть файл calc.py с набором функций. Чтобы протестировать его, нужно сначала создать файл utest_calc.py. Затем добавить в него следующий код:

import unittest
import calc

class CalcTest (unittest.TestCase):
def test_add (self):
self.assertEqual (calc.add (1, 2), 3)

def test_sub (self):
self.assertEqual (calc.sub (4, 2), 2)

def test_mul (self):
self.assertEqual (calc.mul (2, 5), 10)

def test_div (self):
self.assertEqual (calc.div (8, 4), 2)

if __name__ == '__main__':
unittest.main ()

Пора запустить его:

Теперь вы увидите краткую информацию о том, что все тесты успешно пройдены:


----------------------------------------------------------------------
Ran 4 tests in 0.000s
OK

Учись бесплатно:
вебинары по программированию, маркетингу и дизайну.

Участвовать
Школа дронов для всех
Учим программировать беспилотники и управлять ими.
Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована