与Rhino Mocks搭配使用的最佳样式/语法是什么?

时间:2020-03-05 18:50:54  来源:igfitidea点击:

使用Rhino Mocks时,存在多种编写单元测试的方法:

  • 标准语法
  • 记录/重播语法
  • 流利的语法

理想且最无摩擦的方法是什么?

解决方案

回答

有趣的问题!我自己的偏好是基于反射的语法(我想我们是说标准语法的意思)。我认为这是最容易解决的问题,因为它不会添加太多额外的代码:我们可以在接口上直接引用存根,就好像它们已正确实现一样。

我也很喜欢Fluent语法,尽管这很麻烦。 Record / Replay语法与Fluent语法一样繁琐(表面上似乎不那么繁琐),但不那么直观(至少对我而言)。我只使用了NMock2,因此"记录/重播"语法对我来说有点陌生,而Fluent语法却很熟悉。

但是,正如本文所建议的那样,如果我们希望将期望与验证/断言区分开,则应选择Fluent语法。最终,这完全取决于样式和个人喜好:-)

回答

安排,行动,主张。我使用的起订量最低,更喜欢安排,声明,执行和验证。我喜欢在行动之前先设置好所有内容,而不是在最后进行繁重的工作。

回答

对于.NET 2.0,我建议使用记录/播放模型。我们之所以如此,是因为它可以将期望与验证清楚地分开。

using(mocks.Record())
{
    Expect.Call(foo.Bar());
}
using(mocks.Playback())
{
    MakeItAllHappen();
}

如果我们使用的是.NET 3.5和C3,那么我建议我们使用流利的语法。