RandomizedTesting -


Apache
跨平台
Java

软件简介

RandomizedTesting 是一个 JUnit 测试的扩展,封装了内置重复随机的测试和超时控制、参数工厂、线程执行组等等。

示例代码:

@ThreadLeakScope(Scope.TEST)
@ThreadLeakAction({Action.WARN, Action.INTERRUPT})
@ThreadLeakLingering(linger =1000)
publicstaticclassTheGoodBadAndUglyextendsRandomizedTest {
  @Test
  publicvoidgood() {
    // I do nothing and I'm good.
  }

  @Test
  @Repeat(iterations =10)
  publicvoidbad() {
    // I fail randomly, about 20% of the time.
    assertFalse(randomIntBetween(1,100) <=20);
  }

  @Test
  publicvoidugly() {
    // I start and abandon a thread which falls
    // outside the test's scope. The test will fail.
    newThread() {
      publicvoidrun() {
        RandomizedTest.sleep(5000);
      }
    }.start();
  }
}