Node中的Event Listener中的单元测试承诺结果

时间:2017-12-09 22:46:16

标签: node.js unit-testing promise jestjs eventemitter

我有以下要测试的代码。

this.getWorkers().subscribe(data=>{
    ...[code]...
})

然后,我进行了这个单元测试。

 .orig x3000 
 lea r0, string ;


 br putss




 putss

  ldr r1, r0,#0 
   add r0, r1,#0
  add r4, r0, #-4
  brz theend
  out
  and r1,r1,#0
 add r0,r0,#1 ; keeps fetching next chara


   br putss





  theend
   halt









     string .STRINGZ "salazar"

     .end

此测试无效,因为测试完成后会执行emitter.on("request", function(req, res) { mock_finder.getMockedResponse().then((mockedResponse) => { res.end(mockedResponse); }); });

如何在调用事件后测试promise响应?

1 个答案:

答案 0 :(得分:1)

鉴于此处没有真正的异步代码,您可以在下一个时间点验证结果:

if('should return mocked response', done => {
   ...
   emitter.emit('request', req, res);
   process.nextTick(() => {
     expect(res.end).toHaveBeenCalledWith(mockedResponse);
     done()
   });
})