Jestjs 为什么Jest说在没有抛出异常的情况下会有断言调用?
在将Jestjs 为什么Jest说在没有抛出异常的情况下会有断言调用?,jestjs,Jestjs,在将expect.hasAssertions()和expect.assertions(0)添加到我现有的Jest(js)测试中时,我发现Jest意外地失败了一些测试,因为预期的断言调用数与实际的断言调用数不匹配 预期将调用零个断言,但收到一个断言调用 我发现,即使我从头开始创建了一个项目并添加了非常简单的测试,Jest也会因为预期/实际的断言调用而失败 例如。 从Jest的网站向示例添加expect.assertions(0)失败 test('two plus two is four', ()
expect.hasAssertions()
和expect.assertions(0)
添加到我现有的Jest(js)测试中时,我发现Jest意外地失败了一些测试,因为预期的断言调用数与实际的断言调用数不匹配
预期将调用零个断言,但收到一个断言调用
我发现,即使我从头开始创建了一个项目并添加了非常简单的测试,Jest也会因为预期/实际的断言调用而失败
例如。
从Jest的网站向示例添加expect.assertions(0)
失败
test('two plus two is four', () => {
// I'd think this would pass but it fails
expect.assertions(0);
expect(2 + 2).toBe(4);
});
将expect.hasAssertions()
添加到Jest网站的示例中
test('two plus two is four', () => {
// I'd think this would fail but it passes
expect.hasAssertions();
expect(2 + 2).toBe(4);
});
为什么Jest说在没有抛出异常的情况下会有断言调用
笑话:26.4.2,
节点:13.11.0,
净现值:6.13.7
注意:这与expect不同。断言断言断言存在指定数量的断言,即
expect(…)…
调用<代码>预期。断言断言存在断言。他们并没有断言确实存在失败的断言。它们也会考虑失败的断言,但由于测试在第一次失败的断言上失败,所以计算它们是没有意义的
由于有1个断言(expect(2+2).toBe(4)
),因此expect.assertions(0)
失败
因此,这些将通过:
test('two plus two is four', () => {
expect.assertions(1);
expect(2 + 2).toBe(4);
});
test('two plus two is four', () => {
expect.hasAssertions();
expect(2 + 2).toBe(4);
});
这些将失败:
test('two plus two is four', () => {
expect.assertions(0);
expect(2 + 2).toBe(4);
});
test('two plus two is four', () => {
expect.hasAssertions();
});
出于某种原因,我专门将其视为抛出的错误数。现在一切都有意义了。感谢您对这一愚蠢时刻的礼貌回应。