Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# moq-如果类接受异常,如何验证方法未被调用_C#_Unit Testing_Moq - Fatal编程技术网

C# moq-如果类接受异常,如何验证方法未被调用

C# moq-如果类接受异常,如何验证方法未被调用,c#,unit-testing,moq,C#,Unit Testing,Moq,我试图使用Moq测试一个相当复杂的类,但遇到了一个问题 我试图验证一个方法是否没有被调用,通常通过设置MockBehavior.Strict很简单,但是在这里,类有自己的错误报告机制,所以它会接受Moq抛出的异常 .VerifyAll方法在测试结束时也通过了罚款,这真的很奇怪。这是Moq中的一个bug,有什么解决方法吗 我也尝试过在这个方法上设置一个回调,并在其中执行Assert.Fail,但是随着它被吞没,测试框架(VS 2008 builtin test)没有得到通知 我使用的是最小起订量2

我试图使用Moq测试一个相当复杂的类,但遇到了一个问题

我试图验证一个方法是否没有被调用,通常通过设置MockBehavior.Strict很简单,但是在这里,类有自己的错误报告机制,所以它会接受Moq抛出的异常

.VerifyAll方法在测试结束时也通过了罚款,这真的很奇怪。这是Moq中的一个bug,有什么解决方法吗

我也尝试过在这个方法上设置一个回调,并在其中执行Assert.Fail,但是随着它被吞没,测试框架(VS 2008 builtin test)没有得到通知


我使用的是最小起订量2.6.1014.1。(还没来得及升级到最低起订量3)

好吧,这太尴尬了,我已经设法解决了

在3.0中,您可以执行以下操作:

mFMXmlC.Verify(f=>f.Put_Queue_Response(It.IsAny<Uri>(), 
                                       It.IsAny<string>(), 
                                       It.IsAny<string>(), 
                                       It.IsAny<object>()), Times.Never());
mFMXmlC.Verify(f=>f.Put\u Queue\u响应(It.IsAny(),
It.IsAny(),
It.IsAny(),
It.IsAny())、Times.Never());

仍然不明白为什么
VerifyAll
不起作用,但这似乎符合要求。我将把这个问题留待讨论,以防其他人正在寻找类似的问题。

您可能希望将此信息转发到,以确定这是一个bug还是预期行为。