Обновить

Как писать изолированные интеграционные тесты с Testcontainers

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели7.9K
Всего голосов 9: ↑8 и ↓1+9
Комментарии4

Комментарии 4

Есть две основные категории тестов: модульные (или юнит-тесты) и интеграционные. 

Не есть, а можно выделить. Это, пожалуй, максимально грубая классификация. И делать такую оговорку крайне важно. В проектах часто выделяют больше слоёв тестирования и определять "интеграцию" можно очень по-разному.

Не знаю у кого как, а на Rust testcontainers падают по таймауту, если их много создается. Также по завершении, бывает, что контейнер не удаляется из докера и засирает хранилище. Я потратил где-то 3 дня, чтобы их адекватно настроить. Поэтому не сказать, чтобы прям идеальная замена для моков.

А есть ли сейчас смысл в testcontainers, когда есть aspire?

var postgresContainer = new PostgreSqlBuilder()
  // .WithImage("...")
  .Build();

Если приводите пример кода, приводите правильный пример. Конструктор без параметров помечен как Obsolete с указанием использовать конструктор с параметром image. Корректный пример:

var postgresContainer = new PostgreSqlBuilder("postgres:16")
  .WithName($"my-tests-{Guid.NewGuid()}")
  .Build();
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS