Карточка Middle Тестирование обновлено
Testcontainers
Вопрос
Что такое Testcontainers и зачем он в .NET-тестах?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Библиотека, которая из кода теста запускает Docker-контейнеры (PostgreSQL, Redis, RabbitMQ) и удаляет их после. Тесты идут на настоящей СУБД той же версии, что в проде.
Ответ
Библиотека, которая из кода теста запускает Docker-контейнеры (PostgreSQL, Redis, RabbitMQ) и удаляет их после.
var pg = new PostgreSqlBuilder().WithImage("postgres:16").Build();
await pg.StartAsync();
var cs = pg.GetConnectionString();
Тесты идут на настоящей СУБД той же версии, что в проде.
Разбор
Обычно контейнер поднимают один раз на коллекцию тестов (IAsyncLifetime + фикстура), а данные чистят между тестами (Respawn или транзакции).
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Как вы тестируете бэкенд на .NET
Следующий вопрос
Тестирование кода с текущим временем