如何使用Typemock验证带有list作为参数的方法

时间:2013-09-03 11:24:00

标签: c# unit-testing

在我使用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等?有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

免责声明:我使用的是MOQ,而且只能使用与Typemock docs相同的内容

MOQIt.Is.Any<List<double>>()来验证是否使用了指定类型的参数。除非你关心确切的对象被传递....但这可能过度指定你的测试。即使这个测试也会超出规范范围。

通过文档看来,this is what you want ......这就是代码可能会是什么样子

Isolate.Verify.NonPublic.WasCalledWithArguments(someObject=>SomeMethod(null))
    .Matching(args => args[0] is List<double>);