Интеграционные тесты Django
Впервые столкнулся с задачей интеграционных тестов в django.
Нашел в интернете только пару небольших статей на эту тему.
Пример: Имеется три различных сервера, которые взаимодействуют друг с другом. Какие инструменты можно использовать для написания тестов для такой системы? Получается, что мне нужно запустить два сервера одновременно, создать на них базы данных и затем эмитировать работу (обращение к API) между ними.
Подскажите, пожалуйста, какие инструменты можно использовать для реализации таких тестов?
Или я неправильно понимаю значение термина "интеграционный тест", и в результате мне просто нужно написать тесты для моего api?
В зависимости от контекста могут быть различные интерпретации того, что такое интеграция. В целом, вы можете сказать, что у вас есть интеграционный тест, когда вы проверяете, что несколько частей вашего приложения работают правильно вместе.
Если вы хотите написать интеграционные тесты для вашего api, создайте некоторые данные в вашей базе данных, используйте Django's Testclient для доступа к вашему api и сравните результаты ответа вашего api с ожидаемым результатом. Конечно, вы также должны проверить аутентификацию, авторизацию, данные не найдены и т.д.
Хотя вы должны писать интеграционные тесты, я рекомендую вам написать хотя бы один модульный тест, касающийся метода get_queryset, если вы используете CBVs.
Для того чтобы легко преполировать вашу базу данных, вы можете использовать FactoryBoy: https://factoryboy.readthedocs.io/en/stable/index.html
Если вы используете чистый Django, ознакомьтесь с их руководством по тестированию: https://docs.djangoproject.com/en/4.1/topics/testing/tools/
Если вы используете Django Rest Framework, ознакомьтесь с их руководством по тестированию относительно их testclient: https://www.django-rest-framework.org/api-guide/testing/