如何对在执行器服务中运行的代码片段进行单元测试,而不是等待 Thread.sleep(time)
如何对在执行器服务中运行的代码进行单元测试?在我的情况下,
public void test() {
    Runnable R = new Runnable() {
        @Override
        public void run() {
            executeTask1();
            executeTask2();
        }
    };
    ExecutorService executorService = Executors.newSingleThreadExecutor();
    executorService.submit(R);
}
当我进行单元测试时,我想对该方法执行的一些验证进行验证。
我正在执行器服务中执行此操作,因为它进行了一些网络操作。
在我的单元测试中,我必须等到此方法完成执行。有没有更好的方法可以做到这一点,而不是等待.Thread.sleep(500)
单元测试代码片段:
@Test
public void testingTask() {
    mTestObject.test();
    final long threadSleepTime = 10000L;
    Thread.sleep(threadSleepTime);
    verify(abc, times(2))
            .acquireClient(a, b, c);
    verify(abd, times(1)).addCallback(callback);
}
注意:我正在将执行器服务对象传递到此构造函数类中。我想知道是否有一种很好的测试方法,而不是等待睡眠时间。