今天早上在一次工作面试中,他们问我是否得到了一些根本没有测试的遗留代码,我需要修改一些东西,我该怎么做才能完全确保我没有破坏任何东西。
我的回答是,首先我会为我需要修改的那部分代码创建一个测试,然后一旦测试通过,我就会对代码进行修改以确保测试仍然通过。所以基本上是通过测试驱动的开发方法来完成的。 我没有看到面试我的人对我的回答真的满意,所以我想听听您对这些主题的看法,有更好的方法吗?
我的回答有效吗?
非常感谢
最佳答案
您的答案是正确的,但可能过于简单。
在现实世界中,这通常并不那么容易。特别是对于大量代码耦合过度、抽象不良、语言结构效率低下等的遗留系统。如果没有其他测试并且发生这种情况,则尤其具有挑战性。
此外,有时如果依赖项是硬编码的,那么模拟它们并不是那么容易。然后它是否允许模拟最终类、静态方法等取决于模拟框架功能。
也许值得一提的是“有效地使用遗留代码”一书中的一些模式。
关于Java面试测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28882260/