0
次のコードをテストします。ノード内のイベントリスナ内でユニットテストの結果が得られます
emitter.on("request", function(req, res) {
mock_finder.getMockedResponse().then((mockedResponse) => {
res.end(mockedResponse);
});
});
次に、私はこの単体テストを持っています。
it("should return mocked response",() => {
// given
const mockedResponse = {
success: true
};
mock_finder.getMockedResponse.mockImplementation(() => Promise.resolve(mockedResponse));
const res = {
end: jest.fn()
}
// when
emitter.emit('request', req, res);
// then
expect(res.end).toHaveBeenCalledWith(mockedResponse);
});
テストが完了した後にres.end(mockedResponse);
が実行されるため、このテストは機能しません。
イベントが呼び出された後に約束応答をテストするにはどうすればよいですか?