比较数组时,Chai断言错误

问题描述 投票:0回答:1

[在使用Chai时试图断言结果应等于数组时遇到了一个奇怪的错误。

代码示例

   describe("compare array", function() {
        it("should return an empty array", function() {
            const result = getEmptyList(); // just a silly example
            expect(result).to.equal([]);
        });
   });

结果

  × compare array
    PhantomJS 2.1.1 (Windows 8.0.0)
  expected [ find: [Function] ] to equal [ find: [Function] ]
  AssertionError@C:/Code/example/node_modules/chai/chai.js:9449:24
  assert@C:/Code/example/node_modules/chai/chai.js:239:31
  assertEqual@C:/Code/example/node_modules/chai/chai.js:1387:18
  methodWrapper@C:/Code/example/node_modules/chai/chai.js:7824:30
  test/unit/utils/example.js:5:32

当我期望结果的长度等于零时,它可以正常工作。任何人都可以分享一些导致这种情况发生的见解。为什么突然需要[ find: [Function] ],而不是期望的[]

我正在使用Karma作为测试运行程序。

javascript unit-testing phantomjs karma-runner chai
1个回答
0
投票

因为一个数组永远不会对另一个数组===,所以对于数组,您需要deepdeep限定符:

equals

来自文档:

导致链中跟随的所有equalsexpect(result).to.deep.equal([]); // --------------^^^^^ .equal.include.members断言使用深度相等而不是严格(.keys)相等。

© www.soinside.com 2019 - 2024. All rights reserved.