C# 无法验证对具有多个接口的模拟对象上的方法的调用
我正在尝试为C# 无法验证对具有多个接口的模拟对象上的方法的调用,c#,unit-testing,moq,C#,Unit Testing,Moq,我正在尝试为TranslateResponse()编写单元测试 TranslateResponse()还有很多其他的翻译器,但是现在,我把它限制在一个。 BuildTranslator如下所示 public async Task<List<ITranslator>> BuildTranslators() { return new List<ITranslator>() { new PolicyTranslator() } } 验证
TranslateResponse()
编写单元测试
TranslateResponse()
还有很多其他的翻译器,但是现在,我把它限制在一个。
BuildTranslator
如下所示
public async Task<List<ITranslator>> BuildTranslators()
{
return new List<ITranslator>()
{
new PolicyTranslator()
}
}
验证调用仍然失败。
我走对了方向还是错过了什么
mockedPolicyTranslator.Verify(t => t.SetPolicy(new UnknownPolicy()), Times.AtLeastOnce);
参数匹配器需要放松
mockedPolicyTranslator.Verify(t => t.SetPolicy(It.IsAny<UnknownPolicy>()), Times.AtLeastOnce);
mockedPolicyTranslator.Verify(t=>t.SetPolicy(It.IsAny()),Times.AtLeastOnce);
因为当前使用的newunknownpolicy()
实例不会匹配测试时传递的任何内容
mockedPolicyTranslator.Verify(t => t.SetPolicy(new UnknownPolicy()), Times.AtLeastOnce);
mockedPolicyTranslator.Verify(t => t.SetPolicy(It.IsAny<UnknownPolicy>()), Times.AtLeastOnce);