今天上午在一次工作面试中,他们问我是否得到了一些没有测试的遗留代码,我需要修改一些东西,我该如何做才能完全确定我什么都不做。
我的回答是,首先我会为我需要修改的代码部分创建一个测试,然后一旦测试通过,我会修改代码,确保测试仍在通过。所以基本上是通过测试驱动的开发方法来实现的。 我没有看到面试我的人对myanswer真的很好,所以,我想对你的主题有你的意见,有更好的方法吗?
我的答案有效吗?
非常感谢
答案 0 :(得分:2)
您的回答是正确的,但可能过于简化。
在现实世界中,通常并不那么容易。特别是对于许多代码过多耦合的遗留系统,存在错误的抽象,低效的语言结构等。如果没有其他测试并且发生这种情况,则尤其具有挑战性。
有时,如果它们是硬编码的,那么嘲笑依赖项并不容易。然后它依赖于模拟框架功能,如果它允许模拟最终类,静态方法等。
可能提到的好处是"有效地使用遗留代码"书。