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

我怎么断言没有调用存根/模拟对象的方法?对于单个方法,它非常简单,只需调用Stub(x => x.METHOD()).Repeat.Never()但是如果你有很多方法或许多重载方法,那就不方便了.

这有一个整洁的解决方法吗?

最佳答案 我没有真正使用过犀牛模拟,但正如@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.

点赞