Карточка 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 ошибок.

Термины по теме