Java面试测试

Java interview test

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

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

我的回答有效吗?

非常感谢

您的回答是正确的,但可能过于简单了。

在现实世界中,通常没有那么容易。尤其是遗留系统,很多代码耦合度太高,抽象不好,语言结构低效等。如果没有其他测试,这种情况就特别具有挑战性。

此外,有时如果依赖项是硬编码的,那么模拟它们并不是那么容易。那么它是否允许模拟最终类、静态方法等

取决于模拟框架的能力

也许值得一提的是 "Working Effectively with Legacy Code" 书中的一些模式。