请你帮我解决一下。
我正在使用C#,MSTest和Moq进行单元测试项目,如果我想验证方法是否被调用,我使用:
RepositoryMock.Verify(x=>x.method(int value).Times.Once());
我的问题是:是否会对RepositoryMock.Verify
进行评估,以检查我的测试是通过还是失败?我的意思是,就像断言如果方法永远不会被调用,那么测试将失败或发生什么,如果从未调用该方法,最终结果是什么?
答案 0 :(得分:0)
Verify
是旧语法的一部分,是AAA之前的语法。在过去,您在"记录模式"中设置模拟,然后在"重播模式"中运行测试,然后通过调用Verify
验证所有期望。如果您没有调用它,则不会验证期望值(还有一个VerifyAll
可以立即验证所有模拟。)
你不再需要AAA了。它是MockRepository
实例的一种方法,您不必再创建模拟存储库的实例。
要执行您需要的操作,请使用AssertWasCalled
和AssertWasNotCalled
。
mock.Stub(x => x.Foo()).Return("blah");
unitUnderTest.DoIt();
mock.AssertWasCalled(x => x.Bar());