为CPU使用程序编写junit测试用例

时间:2015-12-14 04:55:47

标签: java junit junit4

我有一个java程序,用于计算运行它的环境(单机)的CPU使用率。最初,它创建一个进程,然后根据输入流阅读器计算使用情况。

在这种情况下,成功和失败测试案例可以是什么。

我是junit的新手,在撰写测试用例时,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

将您的问题分解为可测试的单位。在您的情况下,您可以与运行外部进程的代码分开测试解析器。所以你要测试两件事:

  1. 测试您的解析器是否为不同的输入返回正确的加载值
  2. 测试您的代码是否正在运行正确的过程
  3. 您要测试的是,您的代码为当前情况返回了正确的负载值,因为:

    • 您不知道哪个值正确
    • 您无需验证所调用的程序是否正常运行,但您需要测试代码

    结果如下:

    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);
    }