c# - 断言没有方法被调用

标签 c# unit-testing rhino-mocks

如何断言未调用 stub /模拟对象的任何方法?对于单个方法,它相当简单,只需调用 Stub(x => x.METHOD()).Repeat.Never() 但如果你有一堆方法或大量重载方法,它会变得不方便。

是否有解决此问题的巧妙方法?

最佳答案

我还没有真正使用过 rhino-mocks,但是正如@Lee 在他的评论中所建议的那样,您应该能够在使用 StrictMock 之后达到您想要的效果,而无需任何其他期望。因此,给出以下测试:

public void TestStrickMock() {        
    var mockRepo = new MockRepository();

    // Create a StrictMock for the IDummy interface
    var mock = mockRepo.StrictMock<IDummy>();

    // Switch the mode of the mock repo from record to replay
    mockRepo.ReplayAll();

    // Invoke one of the methods on our mocked instance
    mock.Method1();
}

此测试将失败,因为调用了 Method1,但尚未设置调用预期。它因错误而失败:

TestStrickMock: Rhino.Mocks.Exceptions.ExpectationViolationException : IDummy.Method1(); Expected #0, Actual #1.

关于c# - 断言没有方法被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29416053/

相关文章:

node.js - 我如何通过 Mocha 的模拟 promise 进行测试?

c# - 犀牛模拟 : AAA Synax: Assert property was set with a given type

c#:如何验证方法是按特定顺序调用的?

c# - linq 中的 IsNumeric 检查

c# - 在 SignalR 2.0 中将消息从服​​务器发送到客户端

c# - 使用 ASP.NET 生成可以在 Android 上下载的 vCard

c# - Rhino Mocks 部分模拟

c# - 使用 Viewmodel 传递数据时出现 PagedList 错误

python - 如果我将数据库连接存储在 flask.g 对象上,如何让 Flask 连接到我的测试数据库?

.net - 数据库单元测试。对于运行 CI、具有分支和重型数据库的企业解决方案,最好的数据库测试方法是什么?