为什么在没有引发异常的情况下杰斯特说有断言调用?

菲尔·D。

在添加expect.hasAssertions()添加expect.assertions(0)到现有的Jest(js)测试中时,我发现Jest意外地由于某些预期和实际的断言调用数量不匹配而导致某些测试失败

预期将调用零个断言,但收到一个断言调用。

我发现,即使我从头创建了一个项目并添加了难以置信的简单测试,由于预期/实际的断言调用,Jest也会失败。

例如。expect.assertions(0)从Jest网站添加示例到失败

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);
});

为什么在没有引发异常的情况下,杰斯特说有断言调用?

它是:26.4.2,节点:13.11.0,NPM:6.13.7

注意:这与预期调用一个断言不同,但收到零个断言调用

那将是烧瓶

expect.assertions断言存在指定数量的断言,即expect(...)...调用。expect.assertions断言有断言。他们没有断言确实有失败的断言它们也会考虑失败的断言,但是由于在第一个失败的断言中测试失败,因此对它们进行计数是没有意义的。

由于存在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();
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么此SQL INSERT在没有引发和异常的情况下失败?

来自分类Dev

下载任务在没有网络的情况下引发异常

来自分类Dev

抛出异常:为什么在没有throws子句的情况下编译方法?

来自分类Dev

为什么在这种情况下没有调用最合适的构造函数?

来自分类Dev

为什么在没有显式调用exec()或show()的情况下显示QProgressDialog?

来自分类Dev

为什么在这种情况下没有调用最合适的构造函数?

来自分类Dev

为什么函数在没有参数的情况下运行?

来自分类Dev

为什么函数在没有参数的情况下运行?

来自分类Dev

为什么execve系统调用可以在没有任何argv参数的情况下运行“ / bin / sh”,而在没有“ / bin / ls”的情况下运行?

来自分类Dev

为什么在有或没有上下文的情况下捕获异常关闭打开的文件?

来自分类Dev

仅在try和catch块中没有引发异常的情况下,Java运行代码?

来自分类Dev

为什么在这种情况下引发异常的方法的调用者不必处理该异常?

来自分类Dev

NUnit断言没有引发特定异常

来自分类Dev

NUnit断言没有引发特定异常

来自分类Dev

为什么在没有引用运算符的情况下编译器无法决定要调用哪个函数?

来自分类Dev

为什么在没有“命令”的情况下从cd(shell函数)调用cd(内置)会导致无限循环?

来自分类Dev

C ++:在没有活动异常(GCC)的情况下终止调用

来自分类Dev

wxWidgets-在没有活动异常的情况下终止调用(使用std :: thread)

来自分类Dev

分叉的VM在没有正确说再见的情况下终止。VM崩溃或System.exit被调用

来自分类Dev

为什么WCF服务无法在没有错误异常的情况下无法将确切的异常发送给客户端?

来自分类Dev

为什么我可以在没有 getter 方法的情况下访问私有实例变量?

来自分类Dev

在没有catch块的情况下捕获异常

来自分类Dev

仅在没有抛出异常的情况下返回

来自分类Dev

为什么说我的谓词block / 3没有被调用?

来自分类Dev

调用方法并引发异常,说我传递了太多的值...但是我没有

来自分类Dev

为什么这个ruby代码没有引发异常?

来自分类Dev

为什么我的webjob在不引发异常的情况下终止?

来自分类Dev

为什么在size_t的情况下引发bad_alloc()异常

来自分类Dev

为什么在以下情况下引发了不同类型的异常?

Related 相关文章

  1. 1

    为什么此SQL INSERT在没有引发和异常的情况下失败?

  2. 2

    下载任务在没有网络的情况下引发异常

  3. 3

    抛出异常:为什么在没有throws子句的情况下编译方法?

  4. 4

    为什么在这种情况下没有调用最合适的构造函数?

  5. 5

    为什么在没有显式调用exec()或show()的情况下显示QProgressDialog?

  6. 6

    为什么在这种情况下没有调用最合适的构造函数?

  7. 7

    为什么函数在没有参数的情况下运行?

  8. 8

    为什么函数在没有参数的情况下运行?

  9. 9

    为什么execve系统调用可以在没有任何argv参数的情况下运行“ / bin / sh”,而在没有“ / bin / ls”的情况下运行?

  10. 10

    为什么在有或没有上下文的情况下捕获异常关闭打开的文件?

  11. 11

    仅在try和catch块中没有引发异常的情况下,Java运行代码?

  12. 12

    为什么在这种情况下引发异常的方法的调用者不必处理该异常?

  13. 13

    NUnit断言没有引发特定异常

  14. 14

    NUnit断言没有引发特定异常

  15. 15

    为什么在没有引用运算符的情况下编译器无法决定要调用哪个函数?

  16. 16

    为什么在没有“命令”的情况下从cd(shell函数)调用cd(内置)会导致无限循环?

  17. 17

    C ++:在没有活动异常(GCC)的情况下终止调用

  18. 18

    wxWidgets-在没有活动异常的情况下终止调用(使用std :: thread)

  19. 19

    分叉的VM在没有正确说再见的情况下终止。VM崩溃或System.exit被调用

  20. 20

    为什么WCF服务无法在没有错误异常的情况下无法将确切的异常发送给客户端?

  21. 21

    为什么我可以在没有 getter 方法的情况下访问私有实例变量?

  22. 22

    在没有catch块的情况下捕获异常

  23. 23

    仅在没有抛出异常的情况下返回

  24. 24

    为什么说我的谓词block / 3没有被调用?

  25. 25

    调用方法并引发异常,说我传递了太多的值...但是我没有

  26. 26

    为什么这个ruby代码没有引发异常?

  27. 27

    为什么我的webjob在不引发异常的情况下终止?

  28. 28

    为什么在size_t的情况下引发bad_alloc()异常

  29. 29

    为什么在以下情况下引发了不同类型的异常?

热门标签

归档