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

Fre*_*eit 2 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() { ... }
}
Run Code Online (Sandbox Code Playgroud)

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

@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(){ ... }
}
Run Code Online (Sandbox Code Playgroud)

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

目标是确保如果添加新的getter,我们可以通过某种方式确保测试检查它们.

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

有任何想法吗?谢谢你的期待!

Ha.*_*Ha. 5

可能是您需要的代码覆盖工具.如果您有100%的代码覆盖率,则调用所有get方法.如果您使用的是eclipse,请检查EclEmma插件.