java - 确保在 JUnit 测试中调用了所有 getter 方法

标签 java testing reflection junit

我有一个使用 XStream 的类,并用作我的应用程序的传输格式。我正在为其他类编写测试,这些类将这种传输格式映射到不同的消息传递标准或从不同的消息传递标准映射。我想确保在测试中调用我的类中的所有 getter,以确保如果添加新字段,我的测试会正确检查它。

XStream 类的粗略概述

@XStreamAlias("thing")
public class Thing implements Serializable {
 private int id;
 private int someField;

 public int getId(){ ... }
 public int someField() { ... }
}

现在如果我将该类更新为:

@XStreamAlias("thing")
public class Thing implements Serializable {
 private int id;
 private int someField;
 private String newField;

 public int getId(){ ... }
 public int getSomeField() { ... }
 public String getNewField(){ ... }
}

我希望我的测试失败,因为旧测试没有调用 getNewField()

目标是确保如果添加了新的 getter,我们可以通过某种方式确保测试对其进行检查。

理想情况下,这将完全包含在测试中,而不需要修改底层 Thing 类。

有什么想法吗?感谢您的浏览!

最佳答案

也许代码覆盖率工具就是您所需要的。如果你有 100% 的代码覆盖率,则所有 get 方法都已被调用。如果您使用的是 eclipse,请检查 EclEmma 插件。

关于java - 确保在 JUnit 测试中调用了所有 getter 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2562594/

相关文章:

java - 如何使用 OkHttp - Android 将 html 源代码获取到字符串

java - 如何使用它的片段使RelativeLayout 可滚动? - Kotlin

Java Reflection - 调用日期函数

c# - 如何从 .NET 程序集中读取数组初始值设定项

ruby:如何获取当前类而不是基类中定义或覆盖的所有方法?

java - 处理/罗技C920采集帧率视频话语

Java 无法执行_any_ 文件

测试 GoInstant 客户端代码(最好使用 PhantomJS)

database - 使用ScalaCheck生成数据库数据

iphone - 如何通过安装 .app(二进制)文件在设备上测试应用程序? (不使用 Xcode 进行测试)