首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mocking框架新手

mocking框架新手
EN

Stack Overflow用户
提问于 2013-07-06 20:47:20
回答 1查看 2.9K关注 0票数 7

我正在尝试作为一个单独的开发人员进行测试驱动开发(可能会将团队增加到四个)。我有使用NUnit进行单元测试的经验。

我已经开发这个系统好几年了(VB.NET)。在我之前的开发人员在该系统上工作了三年,他支持Martin Fowlers事务脚本方法,这意味着有大量具有大型整体功能的类,实际上没有考虑设计/可重用性等问题。

我已经研究了一些Nunit可用的模拟框架,我相信我唯一的选择是商业产品TypeMock (RhinoMock vs. TypeMock vs. NUnit's Mocking?),因为它允许你模拟非抽象和没有接口的类。这是正确的吗?

我在这里读过一些帖子,暗示事实并非如此。因此,提出这个问题的原因。我可以为事务脚本/单片系统使用任何免费的模拟框架吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-06 21:20:00

Short Answer

如果您没有抽象类或接口,那么您将不得不使用像TypeMockMicrosoft's Fakes这样的产品。

Long Answer

测试驱动开发的主要优点是它迫使你拥有松散耦合的代码和清晰的抽象。否则,您的测试将变得非常难以设置和维护。

你真正需要做的是慢慢地重构.。这是我的建议。

  1. 从查找难以测试的组件开始,并确定所有依赖项。
  2. 开始从这些类中提取接口,然后通过构造函数或编写测试来描述该类的行为来使依赖类“可注入”,从而使依赖类依赖于接口和依赖项,模拟dependencies.
  3. Rinse重复,直到您可以开始驯服代码库。

模拟没有接口的类对于您不能控制的代码很有用。但它仍然很难,随着时间的推移,它将变得笨拙和复杂。

让你的测试与你对话。如果你的测试很难处理,或者设置起来很复杂,那就意味着你的代码需要重构。不要忽略这些反馈。

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17503124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档