Рецепты

Override production-графа в тестах

Явные подмены в дочернем Scope без изменения контейнера production.

v0.1.0-dev.1Средний уровеньark_di

Override production-графа в тестах

Создавайте отдельный контейнер на тест или дочерний Scope от переиспользуемой production-конфигурации. Переопределите зависимость и любой родительский Singleton, который уже её получил.

dart
final testScope = production.createChild((binder) {
  binder.bindInstance<Clock>(fakeClock, overrideParent: true);
  binder.bindLazySingleton<Scheduler>(
    (resolver) => Scheduler(resolver.get<Clock>()),
    overrideParent: true,
  );
});

Всегда закрывайте дочерний Scope в cleanup. Тестовая подмена не должна изменять таблицу production-регистраций.

ARKTELOS

Инженерные системы для программного обеспечения, которое обязано выдерживать нагрузку.