Термин C# и .NET обновлено

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 проверят, что термин понятен в деле.