Java面试测试

标签 java testing tdd

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

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

我的回答有效吗?

非常感谢

最佳答案

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

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

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

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

关于Java面试测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28882260/

相关文章:

unit-testing - 从测试用例中生成机器人框架测试用例?

testing - Hamcrest 1.2 有什么新内容?

oracle - 如何(单元)测试数据密集型PL/SQL应用程序

java - 该方法必须覆盖或实现父类(super class)型方法

java - Spring Boot gradle 插件不起作用

Java TCP - 使用 DataOutputStream 发送文件

java - 优雅地中断java线程

linux - 是否可以使用远程主机上不存在的子域来设置 ssh 反向隧道?

f# - 具有生成字段的记录类型的相等性测试

c# - 如何对索引属性进行最小起订量