Мой вопрос похож на вопрос о DI для обработчика NserviceBus для тестирования (Handler). В качестве решения вы можете использовать внедрение конструктора, используя следующий синтаксис:
Test.Handler<YourMessageHandler>(bus => new YourMessageHandler(dep1, dep2))
Я не смог найти способ использовать тот же подход для тестирования Saga. Существует поддержка внедрения свойств, которая будет выглядеть примерно так:
var saga = Test.Saga<MySaga>()
.WithExternalDependencies(DependenciesSetUp);
private void DependenciesSetUp(MySaga saga)
{
saga.M2IntegrationService = M2IntegrationService.Object;
saga.ProcessLogService = ProcessLogService.Object;
saga.Log = Log.Object;
}
Однако этот подход требует, чтобы мои зависимости были общедоступными. И я хочу попытаться избежать этого.
Есть ли способ использовать внедрение зависимостей конструкции для тестирования Saga?