我对此玩的还不够,通常使用模拟,但是我想知道两者之间的区别以及何时在Rhino Mocks上使用一个或另一个。
更新:
我也用Ayende的话找到了我问题的答案:
存根和模拟的区别
您可以在本文中获得以下术语的实际定义:Mocks Are n't Stubs。我想从Rhino Mocks的角度着眼于差异。
模拟是可以设置期望值的对象,它将验证期望的动作确实已经发生。存根是您用来传递给被测代码的对象。您可以对它设置期望,以便它以某些方式起作用,但是这些期望永远不会得到验证。存根的属性将自动表现为正常属性,并且您无法对它们设置期望。
如果要验证被测代码的行为,将使用具有适当期望值的模拟并进行验证。如果您只想传递可能需要以某种方式起作用但不是测试重点的值,则可以使用存根。
重要说明:存根永远不会导致测试失败。