今天早上,在一次工作面试中,他们问我是否得到了一个没有测试的遗留代码,我需要修改一些东西,我怎么做才能完全确保我没有破坏任何东西。
我的回答是,首先,我将为我需要修改的代码部分创建一个测试,然后,一旦测试通过,我将对代码进行修改,以确保测试仍然通过。因此,基本上是通过测试驱动的开发方法来实现的。我没有看到面试的人真的对我的回答很满意,所以,我想听听你对这个问题的看法,有更好的方法吗?
我的回答有效吗?
非常感谢
发布于 2015-03-06 07:36:10
你的答案是正确的,但可能太简单了。
在现实世界中,这通常不是那么容易。特别是对于代码过多耦合的遗留系统,存在着抽象性差、语言构造效率低下等问题。如果没有其他测试,这种情况就更具有挑战性了。
而且,有时候,如果依赖项是硬编码的,那么模拟它们就不那么容易了。然后,如果允许模拟最终类、静态方法等,则取决于模拟框架的功能。
也许值得一提的是“有效地利用遗产代码”一书中的一些模式。
https://stackoverflow.com/questions/28882260
复制相似问题