@Test
public void loadAd_shouldScheduleTimeoutRunnableBeforeCallingLoadBanner() throws Exception {

    Robolectric.pauseMainLooper();
    assertThat(Robolectric.getUiThreadScheduler().enqueuedTaskCount()).isEqualTo(0);
    Answer assertTimeoutRunnableHasStarted = new Answer() {
        @Override
        public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
            assertThat(Robolectric.getUiThreadScheduler().enqueuedTaskCount()).isEqualTo(1);
            return null;
        }
    };
    doAnswer(assertTimeoutRunnableHasStarted)
            .when(banner)
            .loadBanner(
                    any(Context.class),
                    any(CustomEventBannerListener.class),
                    any(Map.class),
                    any(Map.class)
            );
    subject.loadAd();
}