【问题标题】:moq - how to verify method has not been called if the class swallows exceptionsmoq - 如果类吞下异常,如何验证方法未被调用
【发布时间】:2009-09-18 17:03:06
【问题描述】:

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

我试图验证一个方法不会被调用,通常这很容易通过设置 MockBehavior.Strict 来实现,但在这里,该类有自己的错误报告机制,因此它会吞下 Moq 抛出的异常。

.VerifyAll 方法在测试结束时也可以通过,这真的很奇怪。这是 Moq 中的错误,有什么解决方法吗?

我还尝试在此方法上设置回调并在其中执行 Assert.Fail,但由于这也被吞没,测试框架(VS 2008 内置测试)不会收到通知。 .

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

【问题讨论】:

    标签: c# unit-testing moq


    【解决方案1】:

    嗯,这很尴尬,我已经设法解决了。

    在 3.0 中你可以这样做:

    mFMXmlC.Verify(f=>f.Put_Queue_Response(It.IsAny<Uri>(), 
                                           It.IsAny<string>(), 
                                           It.IsAny<string>(), 
                                           It.IsAny<object>()), Times.Never());
    

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-08
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多