我想使用模拟库和.mock 来模拟IServiceCollection检查是否AddSingleton使用特定接口和具体类型进行调用。NsubstitexUnit
这是我的单元测试:
[Fact]
public checkIfServicesAddedTo_DI()
{
var iServiceCollectionMock = Substitute.For<IServiceCollection>();
var iConfiguration = Substitute.For<IConfiguration>();
MatchServicesManager servicesManager = new MatchServicesManager();
servicesManager.AddServices(iServiceCollectionMock, iConfiguration);
iServiceCollectionMock.Received(1).AddSingleton(typeof(IMatchManager) , typeof(MatchManager));
}
这是实现:
public class MatchServicesManager : IServicesManager
{
public void AddServices(IServiceCollection services, IConfiguration configuration)
{
services.AddSingleton<IMatchManager, MatchManager>();
}
}
我预计测试会成功,但它失败并出现以下错误:
NSubstitute.Exceptions.ReceivedCallsException :预计收到正好 1 个呼叫匹配:Add(ServiceDescriptor) 实际上没有收到匹配的呼叫。收到 1 个不匹配的呼叫(不匹配的参数以“*”字符表示):Add(*ServiceDescriptor *)
米脂
相关分类