我怎么断言没有调用存根/模拟对象的方法?对于单个方法,它非常简单,只需调用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.