@Test(timeout=60000)
public void testExceptionCaching() throws Exception {

  final ThrowingCheckable target1 = new ThrowingCheckable();
  final FakeTimer timer = new FakeTimer();
  ThrottledAsyncChecker<Boolean, Boolean> checker =
      new ThrottledAsyncChecker<>(timer, MIN_ERROR_CHECK_GAP, 0,
          getExecutorService());
  assertTrue(checker.schedule(target1, true).isPresent());
  waitTestCheckableCheckCount(target1, 1L);
  assertFalse(checker.schedule(target1, true).isPresent());
  waitTestCheckableCheckCount(target1, 1L);
}