我知道有几个关于空方法单元测试的问题,但我的问题是不同的。
我正在学习java,所以我的老板给予我一些任务,对我的任务有不同的要求。
在我的实际任务中,有一个要求,jUnit测试必须覆盖〉60%。所以我需要测试一个非常简单的方法来达到这个60%。方法如下:
public void updateGreen() {
// delete this outprint if the Power Manager works
System.out.println(onCommand + "-green");
// p = Runtime.getRuntime().exec(command + "-green");
// wait until the command is finished
// p.waitFor();
}
由于intern的问题,我不能在Runtime
任务中执行该命令。所以在这个方法中只有一个System.out
。
我有多个这样的方法,所以对这个方法的测试将覆盖整个代码的10%以上。
测试这种方法有用吗?如果有用,如何测试?
3条答案
按热度按时间sgtfey8w1#
如果有很多这样的方法,你可能想在这里测试的是
updateScreen()
使用正确的字符串“some-command-绿色”,并且System.out
被调用。为了做到这一点,你可能想将System.out
提取到一个对象字段中并模拟它(即使用Mockito的spy()
)来测试提供给println
的字符串。即
试验中:
liwlm1x92#
如果方法成功运行,则返回true,否则返回false。
您还可以测试此方法的输出,如下所述:Should we unit test console outputs?
但根据我的经验,让方法返回一个乐观或悲观的值(true/false,1/0/-1等)来指示它们的状态要好得多。
你也可以为onCommand标志写一个getter方法:
lmyy7pcs3#
您可以使用系统规则库测试
onCommand + "-green"
是否已写入System.out
。