如何对在执行器服务中运行的代码进行单元测试?在我的情况下,
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);
}
注意:我正在将执行器服务对象传递到此构造函数类中。我想知道是否有一种好的测试方法,而不是等待休眠时间。
ScheduledExecutorService
吗? - Naman