什么是`RepositoryMock.Verify`在做什么

时间:2015-07-28 05:51:22

标签: c# moq

请你帮我解决一下。

我正在使用C#,MSTest和Moq进行单元测试项目,如果我想验证方法是否被调用,我使用:

RepositoryMock.Verify(x=>x.method(int value).Times.Once());

我的问题是:是否会对RepositoryMock.Verify进行评估,以检查我的测试是通过还是失败?我的意思是,就像断言如果方法永远不会被调用,那么测试将失败或发生什么,如果从未调用该方法,最终结果是什么?

1 个答案:

答案 0 :(得分:0)

Verify是旧语法的一部分,是AAA之前的语法。在过去,您在"记录模式"中设置模拟,然后在"重播模式"中运行测试,然后通过调用Verify验证所有期望。如果您没有调用它,则不会验证期望值(还有一个VerifyAll可以立即验证所有模拟。)

你不再需要AAA了。它是MockRepository实例的一种方法,您不必再创建模拟存储库的实例。

要执行您需要的操作,请使用AssertWasCalledAssertWasNotCalled

mock.Stub(x => x.Foo()).Return("blah");

unitUnderTest.DoIt();

mock.AssertWasCalled(x => x.Bar());