0

在我使用 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 无法验证参数是否为列表,并且只能用于字符串、双精度、整数等简单类型?有没有办法做到这一点?

4

1 回答 1

0

免责声明:我使用MOQ并且仅使用 Typemock 文档中似乎等效的内容

MOQ必须It.Is.Any<List<double>>()验证是否使用了指定类型的参数。除非您关心确切的对象是否通过了....但这可能过度指定了您的测试。甚至这个测试也超出了规范。

浏览文档,这似乎是你想要的......这就是代码可能的样子

Isolate.Verify.NonPublic.WasCalledWithArguments(someObject=>SomeMethod(null))
    .Matching(args => args[0] is List<double>);
于 2013-09-03T17:52:56.590 回答