Интеграционные тесты 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/

Вернуться на верх