java void方法的单元测试_JUNIT测试void方法

本文探讨如何有效地对Java类中只包含void方法的代码进行单元测试,以提高代码覆盖率,特别是针对如checkifValidElements方法这类没有直接返回值的方法。作者分享了策略调整和测试方法的优化技巧,避免简单地为求覆盖率而强行添加返回值。
摘要由CSDN通过智能技术生成

我有一个充满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;

}

使用这种方法,我可以执行断言等于,但是在我看来,这样做是徒劳的。问题是我有几个这样设计的类,它降低了我的单元测试覆盖率%。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值