JUNIT 测试失效方法
我有一个充满void方法的java类,我想做一些单元测试以获得最大的代码覆盖率。
例如,我有这个方法:
protected static void checkifValidElements(int arg1, int arg2) {
method1(arg1);
method2(arg1);
method3(arg1, arg2);
method4(arg1, arg2);
method5(arg1);
method6(arg2);
method7();
}
它的名字不好是有原因的,因为我翻译了代码以便更好地理解。每种方法都验证参数是否以某种方式有效并且写得很好。
例:
private static void method1(arg1) {
if (arg1.indexOf("$") == -1) {
//Add an error message
ErrorFile.errorMessages.add("There is a dollar sign in the specified parameter");
}
}
我的单元测试很好地涵盖了小方法,因为我要求他们检查ErrorFile是否包含错误消息,但我不明白如何测试我的方法checkIfValidElements,它不返回任何内容或更改任何内容。当我使用 Maven 运行代码覆盖率时,它告诉我单元测试确实覆盖了我类的这一部分。
我看到的唯一方法是更改此方法以返回int或bollean值,如下所示:
protected static int checkifValidElements(int arg1, int arg2) {
method1(arg1);
method2(arg1);
method3(arg1, arg2);
method4(arg1, arg2);
method5(arg1);
method6(arg2);
method7();
return 0;
}
使用这种方法,我能够做一个断言相等,但在我看来,这样做是徒劳的。问题是我有几个类是这样设计的,它降低了我的单元测试覆盖率%。