如何模拟autofac类型注册?

问题描述 投票:0回答:1

我在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,...]]'。

如何正确处理?

c# unit-testing moq autofac
1个回答
0
投票

如果要为IEmailService接口注册模拟,则可以使用RegisterInstance方法:

© www.soinside.com 2019 - 2024. All rights reserved.