3

イベント データとコールバック関数を入力として受け取るイベント ハンドラー関数があります。

このイベント ハンドラーは、その仕事をするために promise を使用しています。

function myHandler(event, callback) {
  somePromise(event).then((result) => {
    if (result.Error) {
      callback(error);
    } else {
      callback(null, result.SuccessData);
    }
  });
}

ハンドラーをテストする次のコードがあります。

it('test handler', function(done) {
  let event = {...};
  myHandler(event, function(error, success) {
    expect(success).to.not.be.null;
    expect(error).to.be.null;
    expect(success.member).to.be.equal('expected');
    done();
  }
});

このテストを実行すると、次のエラーが表示されます。

(node:3508) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): AssertionError: expected 'unexpected' to equal 'expected'

そして、すべてのテストの終わり:

Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

しかし、まだテストは合格しています...

done()関数の呼び出し中にこのエラーが発生するのはなぜですか?

4

2 に答える 2