鍍金池/ 問(wèn)答/Java  測(cè)試  網(wǎng)絡(luò)安全/ 集成測(cè)試中如何測(cè)試異步邏輯?

集成測(cè)試中如何測(cè)試異步邏輯?

代碼中存在異步邏輯

@Autowired
AsyncRunner asyncRunner;
...
public Result testMethod() {
    ...
    asyncRunner.submit(()->{
    // 一些異步邏輯
    });
    ...
}

如果直接測(cè)試的話,異步方法來(lái)不及執(zhí)行完整。現(xiàn)在是粗暴地通過(guò)Thread.sleep()來(lái)測(cè)試,有沒(méi)有辦法能夠借助mock,使得異步邏輯在測(cè)試中同步執(zhí)行?
期望的方法如:

@Mock
AynscRunner asyncRunner;
...
when(asyncRunner.submit(testLogic())).callRealMethod(testLogic());
Result result = testMethod();
...
回答
編輯回答
有你在
2017年11月19日 01:50