Спасибо автору за статью! Единственный вопрос: почему вместо фейковых объектов используются моки? Как мне кажется, новичкам даже будет проще понять. У тебя границы приложения отделены конкретным интерфейсом, почему бы этот интерфейс не использовать в тестах для создания фейков? Как по мне более гибкий и менее хрупкий вариант и красивый с тз архитектуры приложения
testcontainers использует docker api и сам поднимает необходимые контейнеры определенных версий. Мы тем самым избавляемся от необходимости думать какой сервис нам надо поднять, нам нужно просто запустить тесты - все прогонится само, и + в ci не надо делать отдельно up и down контейнеров с тестовой инфрой
Без них работать не будет, но сегодня любая система контейнеризации де-факто стандарт, поэтому мне кажется здесь можно позволить себе удобство.
А костыль в чем? В том что ты привязываешься к контейнеризации?
Проблем, сколько пользуемся, не видели.
Спасибо автору за статью! Единственный вопрос: почему вместо фейковых объектов используются моки? Как мне кажется, новичкам даже будет проще понять. У тебя границы приложения отделены конкретным интерфейсом, почему бы этот интерфейс не использовать в тестах для создания фейков? Как по мне более гибкий и менее хрупкий вариант и красивый с тз архитектуры приложения
testcontainers использует docker api и сам поднимает необходимые контейнеры определенных версий. Мы тем самым избавляемся от необходимости думать какой сервис нам надо поднять, нам нужно просто запустить тесты - все прогонится само, и + в ci не надо делать отдельно up и down контейнеров с тестовой инфрой
Для тех, кто знаком с FastAPI, есть удобный фреймворк для работы с очередями FastStream - https://faststream.airt.ai/latest/faststream/
Есть возможность использовать не только Kafka, но и Redis, RabbitMQ, Nats и тд