我在代码中发现,当我混合使用“异步”和“同步”测试来测试异步功能时,问题就出现了。
我使用jest expect()以“同步方式”测试了一个异步函数。解决/拒绝导致问题的API。必须以异步等待的方式重写测试。这解决了问题。
describe('asyncSum()', () => {
test('"broken" sync test', () => {
expect(asyncSum(2, 2)).resolves.toEqual(4); // This line causes the issue incorrect assertion count
})
test('async test resolves example', async () => {
expect.assertions(1);
const sum = await asyncSum(2, 2);
expect(sum).toEqual(4);
})
test('async test reject example', async () => {
expect.assertions(1);
let error;
try {
await asyncSum(2);
} catch (err) {
error = err;
}
expect(error.message).toEqual('Missing 2nd parameter')
}
})