Виды тестов:
Зачем писать тесты: тесты писать нужно всегда. Как минимум нужно писать unit тесты (так как они самые дешевые). Ими должно быть покрыто максимальное количество кода.
Какие модули есть в python?
Unittest: встроенный в python модуль (импортирован с джавовского JUnit).
✅ максимально дружелюбный интерфейс к JUnit
✅ не будет лишних зависимостей в проекте
✅ используется некоторыми большими фреймворками by default (например django)
❌ не pep8 friendly (использует camelCase)
❌ атомарный тест — класс
❌ скудный функционал по сравнению с pytest
Pytest: инструмент от сторонних разработчиков
✅ широкий функционал (очень гибкий)
✅ атомарный тест — функция
✅ pep8 friendly
✅ куча батареек (плагинов)
✅ крутая работа с fixtures
❌ будет зависимость
Уровни фикстур (scope) - это различные степени видимости фикстур в тестовом коде. Существует три уровня фикстур: уровень функции, уровень класса и уровень модуля.
Обычно рекомендуется использовать уровень функций для фикстур, которые требуются только для одной тестовой функции, и уровня класса или модуля для фикстур, которые используются в нескольких тестовых функциях. Это помогает улучшить читаемость кода и упростить его отладку. Кроме того, существует также уровень сессии, который доступен в некоторых фреймворках для тестирования. Фикстуры на уровне сессии измеряются во всех тестах, которые измеряются в течение одной сессии сессии, и включаются в течение всего времени жизни сессии. Они используются для настройки и инициализации ресурсов, которые необходимы для всех тестов в рамках сессии.