你首先重构你的SQL吗?你的建筑?或者你的代码库?你会改变语言吗?你会抛弃一切并从头开始吗?[不重构]

有帮助吗?

解决方案

我正在向大型遗留意大利面条代码库添加单元测试。

我的方法是,当被要求解决问题时,我尝试围绕与我当前任务相关的代码库部分创建一个新的包装器。这个新的包装器是使用 TTD(首先编写测试)开发的。有的时候打电话 进入 未经单元测试的遗留代码。有时我会制作现有模块的新副本并开始对其进行严重的破坏。有时我会从头开始重写功能。

但当我对其进行了相当好的测试时,我感觉一切都在掌控之中。

我发现这个代码库是通过太多的复制和粘贴而开发的,一旦我理解了特定的部分,并从中提取了一些功能(首先进行测试)......这些函数通常可以在许多其他地方使用,因此用我自己的单元测试库替换遗留代码的速度会增加。

我不会(也没有权力)尝试重写或添加测试到当前问题未触及的代码部分(通常是我试图修复的错误),但我确实有相当积极主动的立场任何涉及到的并且可能相关的事情。

更新 :企鹅问:“你们用什么语言工作?您有推荐的特定测试工具吗?”

现在我在...工作呃……腮腺炎!但同样的原则在任何地方都适用。

MinUnit 改变了我对 UT 的理解: http://www.jera.com/techinfo/jtns/jtn002.html

当我看到 MinUnit 时,这对我来说是一种“禅宗”的启蒙时刻。它消除了我对单元测试的误解,认为单元测试是复杂的事情,需要复杂的 OO 框架等。我知道 UT 只是编写一堆测试。您可以自己用任何您喜欢的语言在大约 3 分钟内编写“工具”。只要行动起来就可以了。

其他提示

这实际上取决于代码库的状态......有大量的课程吗?一堂课有多种方法吗?类之间紧密耦合吗?配置是负担吗?

考虑到这一点,我建议阅读 有效地处理遗留代码, ,找出您的问题,并应用建议。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top