来自Jest文档:
Expect.assertions(number)验证在测试期间是否调用了一定数量的断言。在测试异步代码时,这通常很有用,以确保回调中的断言确实被调用。
这意味着,如果我们正在测试promises的拒绝案例(catch中的断言),那么如果没有expect.assertions promise,那么我们的测试就会通过。但是,我们只是在测试函数中没有错误,我们的断言实际上从未运行过。换句话说,我们没有检查我们想要什么。我们得到了答案,但没有对我们的问题,因为完成不会不及格的测试。总之,在检查拒绝/错误时必须定义断言的数量。
在docs中还有另一个例子:
test('the data is peanut butter', async () => {
expect.assertions(1);
const data = await fetchData();
expect(data).toBe('peanut butter');
});在使用async/await模式时,我们将等待promise得到解决,并且我们的测试条件肯定会运行。
expect.assertions在这里的目的是什么?我们真的需要在这段代码中使用expect.assertions,还是编写它只是一种最佳实践?
https://stackoverflow.com/questions/54706481
复制相似问题