今天早上在一次工作面试中,他们问我是否有一些没有测试的遗留代码,我需要修改一些东西,我将如何做才能完全确保我没有破坏任何东西。

我的回答是,首先我会为我需要修改的代码部分创建一个测试,然后一旦测试通过,我会修改代码以确保测试仍然通过。所以基本上是从测试驱动的开发方法来做的。
我没有看到面试我的人对我的回答真的很好,所以我想听听你对这些主题的看法,有更好的方法吗?

我的回答有效吗?

非常感谢你

最佳答案

您的答案是正确的,但可能过于简化。

在现实世界中,这通常并不容易。特别是对于大量代码耦合过多的遗留系统,存在糟糕的抽象,低效的语言结构等。如果没有其他测试并且发生这种情况,则尤其具有挑战性。

此外,有时如果依赖项是硬编码的,那么模拟它们就不是那么容易了。那么它是否允许模拟最终类、静态方法等取决于模拟框架的功能。

也许值得一提的是“有效地使用遗留代码”一书中的一些模式。

10-08 02:49