jest/prefer-expect-resolves Style
作用
在使用 Promise 时,有两种主要方法可以测试已解析的值
- 对
expect
使用resolve
修饰符(await expect(...).resolves.<matcher>
样式) await
Promise 并针对其结果进行断言(expect(await ...).<matcher>
样式)
虽然第二种样式可以说不太依赖于 jest
,但如果 Promise 被拒绝,它将被视为一般错误,导致 jest
产生可预测性更低的行为和输出。
此外,采用第一种样式与它的 rejects
对应样式确保一致性,因为没有办法“await”拒绝。
示例
javascript
// valid
it("passes", async () => {
await expect(someValue()).resolves.toBe(true);
});
it("is true", async () => {
const myPromise = Promise.resolve(true);
await expect(myPromise).resolves.toBe(true);
});
it("errors", async () => {
await expect(Promise.reject(new Error("oh noes!"))).rejects.toThrowError("oh noes!");
});
// invalid
it("passes", async () => {
expect(await someValue()).toBe(true);
});
it("is true", async () => {
const myPromise = Promise.resolve(true);
expect(await myPromise).toBe(true);
});