Testcontainers: что это
Коротко
Testcontainers: библиотека, которая из кода теста запускает 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 или транзакции).
Из урока «Тестирование в .NET»
InMemory-провайдер EF Core не проверяет ограничения и транзакции, поэтому для логики работы с данными берут настоящую СУБД: Testcontainers поднимает PostgreSQL в Docker из кода теста.
Читать урок целикомВопросы по теме с собеседований
Запомните, а не прочитайте
В тренажёре карточка вернётся, когда начнёт забываться. А билеты по C# и .NET проверят, что термин понятен в деле.