首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TDD:在增强现有的大型应用程序时可以启动吗?

TDD:在增强现有的大型应用程序时可以启动吗?
EN

Stack Overflow用户
提问于 2011-06-07 18:37:32
回答 3查看 131关注 0票数 4

Martin的"Clean Code“中关于TDD的章节激发了我的想象力。

然而。

这些天,我主要是扩展或修复现有的大型应用程序。

另一方面,TDD似乎只适用于从头开始的写作。

谈论这些现有的大型应用程序:

  1. 它们不是用测试驱动程序编写的(当然)。
  2. 我不能重写它们。
  3. 为它们编写全面的测试驱动程序风格的测试在时间框架内是毫无疑问的。

我没有看到任何关于TDD "bootstrap“到大型monolite现有应用程序中的提及。

问题是,这些应用程序中的大多数类原则上只能在应用程序内部运行。

它们是不可分离的。它们不是通用的。只是为了启动它们,你至少需要整个应用程序的一半。万物皆与万物相连。

那么,引导程序在哪里呢?

或者有另一种技术可以处理TDD的结果

这是否适用于扩展不是使用TDD开发的现有应用程序?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-07 19:29:48

bootstrap用于隔离您正在处理的区域,并为您想要保留的行为和想要添加的行为添加测试。当然,困难的部分是使其成为可能,因为未测试的代码往往纠缠在一起,使得难以隔离代码区域以使其可测试。

购买Working Effectively with Legacy Code,它提供了大量的指导,告诉你如何准确地完成你的目标。

您可能还想看看这个相关问题的答案,Adding unit tests to legacy code

票数 3
EN

Stack Overflow用户

发布于 2011-06-07 18:43:56

从小事做起。抓取一段可以合理提取并转换为可测试类的代码,然后这样做。如果应用程序充满了如此多的硬依赖和可怕的意大利面逻辑,以至于你不可能在不担心破坏某些东西的情况下重构,那么就从做一堆集成测试开始,这样你就可以在开始摆弄它之前/之后确认正确的行为。

票数 2
EN

Stack Overflow用户

发布于 2011-06-07 18:44:53

您现有的应用程序听起来像是受到紧密耦合和大量技术债务的困扰。在这样的情况下,您可以花费大量时间尝试编写全面的单元测试,以便更好地将时间花在主要的重构上,特别是促进松散耦合。

在其他情况下,将时间和精力投入到使用模拟框架进行单元测试可能是有益的,因为它有助于将应用程序解耦以进行测试,从而使测试单个组件成为可能。依赖注入技术可以与mocking结合使用,以帮助实现这一点。

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

https://stackoverflow.com/questions/6264007

复制
相关文章

相似问题

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