作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
过去,我只使用过 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();
用松散的模拟
var mockBuzz= new Mock<IBuzz>();
foo.Buzz = mockBuzz
foo.Bar();
mockBuzz.Verify(x => x.Bizz()) //test will fail if Bizz method not called
是否有标准或正常的方法来执行此操作?
最佳答案
当我第一次开始在单元测试中使用 mock 时,我曾经使用过严格的 mock。这并没有持续很长时间。我停止这样做的真正原因有两个:
由于这些原因,我强烈建议您在单元测试中使用松散模拟。
关于c# - 最小起订量,严格与宽松的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4996327/
我是一名优秀的程序员,十分优秀!