我在autofac容器中进行了以下注册:
builder.RegisterType<EmailService>().As<IEmailService>().InstancePerLifetimeScope();
builder.RegisterType<AzureBlobStorageService>().InstancePerLifetimeScope();
某些命令取决于这些服务。但是在我的测试中,我不需要它们,这不是我想要测试的。
所以我试图通过以下方式重写注册:
builder.RegisterType<Mock<EmailService>>().As<IEmailService>().InstancePerLifetimeScope();
builder.RegisterType<Mock<AzureBlobStorageService>>().InstancePerLifetimeScope();
但是我遇到了错误:消息:System.ArgumentException:类型'Moq.Mock 1 [EmailService]'无法分配给服务'Moq.Mock`1 [[IEmailService,...]]'。
如何正确处理?
如果要为IEmailService
接口注册模拟,则可以使用RegisterInstance
方法: