【发布时间】:2020-05-01 23:37:30
【问题描述】:
我有一个返回承诺的函数 (hostelService.book):return Promise.resolve(response);
我做了这个测试:
const action = async () => {
await hostelService.book(id);
};
await expect(action).rejects.toThrow();
但我有这个错误:
Matcher error: received value must be a promise
【问题讨论】:
-
只有
toThrow调用提供的值。rejects要求它已经是一个promise,而不是一个返回一个promise的函数。我认为.rejects.toThrow()根本没有意义;你可能想要expect(hostelService.book(id)).rejects.toEqual(someError)。见jestjs.io/docs/en/tutorial-async.html#rejects。
标签: javascript node.js typescript jestjs