javascript - javascript unittests jest 库中是否有 assertCountEqual 等价物?

标签 javascript unit-testing jestjs

当结果列表的顺序发生变化时,我对在一个环境中传递而在另一个环境中失败的对象列表进行断言的开 Jest 单元测试。我正在寻找一些 assertCountEqual (python) 等效于 jest图书馆。我愿意提供任何帮助。
我尝试添加 sort()我的断言,但列表中有自定义对象,它并不简单:expect(list1.sort()).toEqual(list2.sort());

最佳答案

Jest不支持此类断言,但您可以编写自己的函数:

  • 自定义比较器,如许多文章中所述:

    function customFieldCompare(a, b){
        const customField1= a.customField;
        const customField2= b.customField;
        if (customField1 > customField2) {
            return -1;
        }
        if (customField2 > customField1) {
            return 1;
        }
        return 0;
    }
    

    可以和简单的expect toEqual一起使用

    expect(list1.sort(customFieldCompare)).toEqual(list2.sort(customFieldCompare));
    
  • 定制 assertCountEqual
    function customAssertCountEqual(array1, array2){
        expect(array1.length).toEqual(array2.length);
        array1.forEach(function (arrayItem) {
          expect(array2).toContainEqual(arrayItem)
        });
    }
    
  • 关于javascript - javascript unittests jest 库中是否有 assertCountEqual 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58833407/

    相关文章:

    javascript - JestJS:如何获得模拟函数的不同 promise 结果并测试抛出的错误?

    javascript - 阿拉伯语 tinymce 不工作

    java - 如何使用 hamcrest 比较忽略标签的文本?

    javascript - HTML Javascript 在 for 循环中添加一个 var 作为输入值

    php - 测试 PHP_SAPI! ='cli' phpunit 代码

    c++ - 如何为依赖操作系统的类编写测试

    reactjs - 使用 setTimeout 进行 Jest 测试 Hook 状态更新

    javascript - jest 不理解流类型和对象解构?

    javascript - 计算表中元素的正确 offsetLeft 的 jQuery 方法

    Javascript 正则表达式查找和替换问题