Я создаю RESTful API, который запускается в док-контейнере и использует Python 3 Flask и поддерживается MongoDB через библиотеку PyMongo.Я хочу добавить модульные тесты в API, которые я могу запускать при выполнении git commit (в конвейере CI / CD).API в основном просто позволяет создавать, получать, перечислять, изменять и удалять объекты в базе данных.Я хочу, чтобы мои тесты вызывали эти конечные точки и проверяли, имеют ли ответы смысл.Каким будет рекомендуемый шаблон для этого?
MockupDB кажется, что это позволило бы мне подделать сервер MongoDB внутри моего контейнера Python, но программирование всех ответов из MongoDB кажется слишком сложным.
Я мог бы изменить свой класс данных, например:
test_dictionary = {}
def get(identifier):
if is_test:
return test_dictionary.get(identifier, None)
return database.find_one({'_id': identifier})
Но это уменьшило бы мое покрытие.
Я мог бы иметь отдельный Dockerfile для тестирования, который включает в себя оба сервера MongoDBи питон.Затем укажите мое соединение PyMongo на локальном сервере в тестовом Dockerfile и на сервере вне контейнера для обычного Dockerfile.Что означало бы, что я больше не тестирую в одной и той же среде.
Может быть, я смогу использовать модуль Python unittest.mock ?
Или эти тесты лучше подходят дляработает после развертывания контейнера?
Я думаю, что тестовые документы Flask пока не дадут, но не описывают, как обращаться с соединениями с базой данных.