我有一个java程序,用于计算运行它的环境(单机)的CPU使用率。最初,它创建一个进程,然后根据输入流阅读器计算使用情况。
在这种情况下,成功和失败测试案例可以是什么。
我是junit的新手,在撰写测试用例时,我们将不胜感激。
答案 0 :(得分:0)
将您的问题分解为可测试的单位。在您的情况下,您可以与运行外部进程的代码分开测试解析器。所以你要测试两件事:
您要测试的是,您的代码为当前情况返回了正确的负载值,因为:
结果如下:
public void test45PercentLoad() {
LoadParser p = new LoadParser();
InputStream in = getClass().getResourceAsStream("cpuUsageSample45percentLoad.txt");
p.read(in);
assertEquals(45, p.getLoadPercentage());
}
public void testProgramCall() {
Process p = MachineLoadMeter.callExternalProgram();
assertEquals("process is terminated", !p.isAlive());
assertEquals("exit value 0 means some program was run", 0, p.exitValue());
// maybe test the process output for some string patterns
// that are always present, to check that the correct external program
// was run
}
/**
* Run everything together, but only test basics.
*/
public void testMachineLoadMeter() {
int v = MachineLoadMeter.getCurrentLoadPercentage();
assertTrue(v >= 0 && v <= 100);
}