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

标签 java unit-testing testing junit timeout

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

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

最佳答案

试试这个:

在线程中执行逻辑, hibernate 并检查线程是否还活着。

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

关于java - 如何使用 Junit 和超时获得成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26741710/

相关文章:

java - JProgressBar查询

java - JNI - 自动将所有新生成的线程从进程附加到 JVM?

android - Mockito 想要但未调用 - 但是,与此模拟正好有 1 次交互

unit-testing - 单元测试 SLF4J 日志消息的最佳方法是什么?

android - 在没有无线契约(Contract)的 Android 设备上测试,如 AT&T 或 Verizon 等

ruby-on-rails - 我正在尝试在 Rails 上使用区分大小写的唯一性,但测试失败了

java - 在 JNI 中打开枚举?

java - web.xml错误500和struts全局异常有什么区别?

unit-testing - 对 databricks 笔记本上定义的函数进行单元测试以及对 pyspark DF 进行单元测试

angular - 如何测试 Angular 中的所有订阅是否都已取消订阅?