Курс Python → Тестирование функции сложения

Для написания и автоматического тестирования кода в Python часто используют модуль unittest или библиотеку pytest. Эти инструменты позволяют разработчикам создавать тесты для своего кода и проверять его работоспособность в автоматическом режиме. При этом можно убедиться, что изменения в коде не привели к появлению ошибок или неправильному поведению программы.

Давайте рассмотрим примеры использования модуля unittest и библиотеки pytest для тестирования простой функции сложения. Предположим, у нас есть функция add(a, b), которая складывает два числа. Мы хотим убедиться, что данная функция работает корректно, поэтому напишем тесты для нее.

import unittest

def add(a, b):
    return a + b

class TestAddFunction(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(2, 3), 5)
        self.assertEqual(add(-1, 1), 0)
        self.assertEqual(add(0, 0), 0)

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

В приведенном примере мы создали класс TestAddFunction, который наследуется от unittest.TestCase, и определили в нем метод test_add. В этом методе мы используем утверждения self.assertEqual для проверки результатов работы функции add. Если все утверждения выполняются успешно, то тест считается пройденным.

Теперь рассмотрим пример использования библиотеки pytest для тестирования той же функции add:

import pytest

def add(a, b):
    return a + b

def test_add():
    assert add(2, 3) == 5
    assert add(-1, 1) == 0
    assert add(0, 0) == 0

В данном случае мы просто определяем функцию test_add, внутри которой используем утверждения assert для проверки результатов работы функции add. Если какое-то из утверждений не выполняется, то pytest выведет сообщение об ошибке и укажет, что тест не прошел.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Работа с *args и **kwargs в Python
  2. Виртуальные среды в Python
  3. Метод rsub для пользовательских чисел
  4. Конструктор в Python
  5. Асинхронное программирование с asyncio
  6. Codecademy в Telegram
  7. Логические операторы в Python
  8. Форматирование строк в Python.
  9. Работа с эмодзи в Python
  10. Работа с контекстным менеджером Pool
  11. Именованные кортежи в Python
  12. Создание Telegram-бота на Python
  13. Обезопасьте ввод данных
  14. Переопределение метода __and__
  15. Комментарии в Python
  16. Циклы в Python
  17. Создание пар из последовательностей
  18. Протокол управления контекстом
  19. Форматирование данных с помощью pprint
  20. Преобразование строк в числа в Python
  21. Безопасный доступ к значениям словаря
  22. Очистка данных с помощью pandas
  23. Функция zip() в Python
  24. Профилирование кода на Python
  25. Функция divmod() в Python
  26. Модуль sys: основы
  27. Combobox в Tkinter
  28. Замена подстроки
  29. Функция format() в Python
  30. Управление User-Agent в Python
  31. Работа с f-строками 2.0
  32. Работа с zip-архивами в Python
  33. Метод clear для коллекций
  34. Поиск индекса элемента в списке
  35. Генераторы списков
  36. Создание списков в Python
  37. Инициализация объекта
  38. Лямбда-функции в Python
  39. ROT13 Шифр Цезаря в Python
  40. Beautiful Soup — извлечение данных из HTML
  41. Метаклассы в Python
  42. Использование двоеточия в Python
  43. Поиск подстроки в строке
  44. Поиск повторов в списке
  45. Возвращение нескольких значений
  46. Создание пользовательской коллекции в Python
  47. Роль object и type в Python
  48. Работа с комплексными числами

Marketello читают маркетологи из крутых компаний