任何犀牛专家都可以通过给出一个适当的例子来解释一下上述方法之间的区别吗?MockRepository类(Rhino Mocks 框架)。
MockRepository
应该在哪里使用 Stub 而不是 Mock 方法或其他方法?
当您要验证对象上是否发生了某些事情(例如调用了方法)时,应该使用模拟。当您只想让对象参与测试以返回值但它不是您正在测试的东西时,您应该使用存根。没有满足期望的存根永远不会通过测试。
我认为一般规则应该是,在测试中应该只拥有一个模拟对象,但可能有几个向模拟对象提供信息的存根。我相信测试中超过 1 个模拟就是代码异味。
虽然不是 Rhino 的例子Martin Fowler 对差异进行了描述 http://martinfowler.com/articles/mocksArentStubs.html#TheDifferenceBetweenMocksAndStubs
Also 这个问题 https://stackoverflow.com/questions/477924/rhino-mocks-stub-expect-vs-assertwascalled可能有用this one https://stackoverflow.com/questions/1288168/when-to-use-stubs-and-mocks