比较数组时 Chai 断言错误

Chai assertion error when comparing arrays

我在使用 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 作为我的测试运行器。

因为一个数组永远不会 === 到另一个数组,对于数组你需要 deep qualifier for equals:

expect(result).to.deep.equal([]);
// --------------^^^^^

来自文档:

Causes all .equal, .include, .members, .keys, and .property assertions that follow in the chain to use deep equality instead of strict (===) equality.