RandomizedTesting

十度 测试工具 收藏


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

下载地址