在过去,我只使用了Rhino Mocks,典型的严格模拟.我正在与Moq合作开展一个项目,我想知道正确的用法.
假设我有一个方法Bar的对象Foo,它在对象Buzz上调用Bizz方法.
在我的测试中,我想验证Bizz是否被调用,因此我觉得有两种可能的选择:
用严格的模拟
var mockBuzz= new Mock<IBuzz>(MockBehavior.Strict);
mockBuzz.Setup(x => x.Bizz()); //test will fail if Bizz method not called
foo.Buzz = mockBuzz
foo.Bar();
mockBuzz.VerifyAll();
Run Code Online (Sandbox Code Playgroud)
随着一个松散的模拟
var mockBuzz= new Mock<IBuzz>();
foo.Buzz = mockBuzz
foo.Bar();
mockBuzz.Verify(x => x.Bizz()) //test will fail if Bizz method not called
Run Code Online (Sandbox Code Playgroud)
有这样做的标准或正常方式吗?