Курс 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. Оператор += для объединения строк
  2. Наиболее частотные элементы с помощью Counter
  3. Работа с словарями в Python
  4. Переменная Шредингера
  5. PATCH-запрос с библиотекой requests
  6. Атрибуты массивов в Numpy
  7. Метод get для словаря
  8. Печать в одной строке
  9. Анализ текста на русском языке с помощью Pymystem3
  10. Обработка ошибок в Python
  11. TON Smart Challenge #2: участие и подготовка
  12. Тип данных TypeVarTuple
  13. Модуль Antigravity в Python 3
  14. enumerate() в Python для работы с индексами
  15. Combobox в Tkinter
  16. Декоратор проверки активности
  17. Docstring в Python
  18. Копирование и вставка текста в Python
  19. Импорт и использование модулей в Python
  20. Проверка окончания строки с помощью str.endswith()
  21. Аннотации типов в Python
  22. Порядок и длина множеств в Python
  23. Управление доступом к модулю
  24. Подсказки при вводе данных в Python
  25. Работа с временем в Python
  26. Отладка регулярных выражений в Python
  27. Определение относительного пути
  28. Разделение функций на этапы
  29. Создание объекта timedelta
  30. Работа с географическими данными.
  31. Уникальность ключей в словаре
  32. Удаление символов новой строки в Python.
  33. Математические функции в Python
  34. Избегайте использования goto
  35. Изменение регистра данных
  36. Основные операции с Numpy
  37. Нан-рефлексивность в Python
  38. Инверсия списка и строки
  39. Сохранение и загрузка модели в PyTorch
  40. Изменяемые и неизменяемые объекты
  41. Управление пакетами с pip
  42. Сглаживание списка
  43. Функция map() и ленивая оценка
  44. Python reversed() vs срез[::-1]
  45. Colorama: окрашивание текста в Python
  46. Создание новых списков в Python
  47. Подписка на SelectelNews в Twitter

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