使用Rhino Mocks时,有多种方法可以编写单元测试:
什么是理想的,最无摩擦的方式?
答案 0 :(得分:1)
安排,行动,断言。所以,我使用MoQ并更喜欢安排,断言,行动,验证。我喜欢在行动之前设置一切,而不是在最后做重物。
答案 1 :(得分:1)
对于.NET 2.0,我建议使用录制/播放模型。我们喜欢这样,因为它清楚地将您的期望与您的验证区分开来。
using(mocks.Record())
{
Expect.Call(foo.Bar());
}
using(mocks.Playback())
{
MakeItAllHappen();
}
如果您使用的是.NET 3.5和C#3,那么我建议使用流畅的语法。
答案 2 :(得分:0)
有趣的问题!我自己的偏好是基于反射的语法(我猜你的标准语法是什么意思)。我认为这是最无摩擦的,因为它不会添加太多额外的代码:您直接在接口上引用存根,就好像它们已正确实现一样。
我也非常喜欢Fluent语法,尽管这非常麻烦。记录/重放语法与Fluent语法一样繁琐(如果不是更多,似乎),但不太直观(至少对我来说)。我只使用了NMock2,因此Record / Replay语法对我来说有点陌生,而Fluent语法非常熟悉。
但是,如this post所示,如果您希望将期望与验证/断言分开,则应选择Fluent语法。这完全取决于风格和个人偏好,最终: - )