如何使用Junit和超时获得成功?

时间:2014-11-04 17:51:25

标签: java unit-testing testing junit timeout

@Test (expected=TimeoutException.class,timeout=1000)
public void fineForFiveSeconds() {
    foo.doforever();
    fail("This line should never reached");
}

这是我的测试代码。 我想要的只是运行doforever()一段时间然后让测试成功。

1 个答案:

答案 0 :(得分:2)

试试这个:

执行线程中的逻辑,休眠并检查线程是否仍然存活。

@Test
public void fineForFiveSeconds() throws InterruptedException {
  Thread thread = new Thread() {
    @Override
    public void run() {
      foo.doforever();
    }
  };

  thread.start();

  //Let the current thread sleep (not the created thread!)
  Thread.sleep(5000);

  assertTrue(thread.isAlive());
}