【发布时间】:2010-03-16 10:12:55
【问题描述】:
在任何情况下,手动创建存根类型而不是在测试时使用模拟框架(例如 Rhino Mocks)是有利的。
我们在项目中采用这两种方法。当我看到一长串对象的存根版本时,我的直觉是它会增加维护开销,并将存根的实现从测试点移开。
【问题讨论】:
-
您可能想阅读msdn.microsoft.com/en-us/magazine/cc163358.aspx 以及 xUnit 测试模式一书
在任何情况下,手动创建存根类型而不是在测试时使用模拟框架(例如 Rhino Mocks)是有利的。
我们在项目中采用这两种方法。当我看到一长串对象的存根版本时,我的直觉是它会增加维护开销,并将存根的实现从测试点移开。
【问题讨论】:
当您达到存根占用过多维护时间的地步时,就该转向存根/模拟框架了。所以我想你自己已经给出了答案。
目前,为了简单起见,我仍在对当前项目使用存根。我使用存根的类型只有几种,通常只有一个存根,有时两个用于重现错误,但不会更多。
【讨论】:
出于自动化单元测试的目的,模拟几乎总是更好的选择。因为它们使用反射来模拟对象,所以当您进行更改时它们会保持最新状态。
我创建存根的唯一一次是用于集成测试 - 例如,您可以存根 SMS 发送服务,这样您就可以运行一段时间的集成/用户测试,而无需支付发送 SMS 消息的费用(相反,消息是存储以便检查)。
【讨论】: