在我使用typemock的C#中的一个测试中,我需要验证是否使用某个参数调用函数。该参数恰好是List。并且该方法受到保护。
以下是要验证其呼叫的方法的签名
protected void SomeMethod(List<double> someArgs);
以下是我写的验证码
List<double> someArgs = new List<double>();
Isolate.Verify.NonPublic.WasCalled(someObject, SomeMethod).WithArguments(someArgs);
我一直在使用不匹配的参数调用“方法,这是一个VerifyException”。这是否意味着Isolator无法验证参数是否为列表,并且只能用于简单类型,如string,double,int等?有没有办法实现这个目标?
答案 0 :(得分:0)
免责声明:我使用的是MOQ
,而且只能使用与Typemock docs相同的内容
MOQ
有It.Is.Any<List<double>>()
来验证是否使用了指定类型的参数。除非你关心确切的对象被传递....但这可能过度指定你的测试。即使这个测试也会超出规范范围。
通过文档看来,this is what you want ......这就是代码可能会是什么样子
Isolate.Verify.NonPublic.WasCalledWithArguments(someObject=>SomeMethod(null))
.Matching(args => args[0] is List<double>);