gpt4 book ai didi

javascript - 使用 mocha 和 chai 测试数组输出

转载 作者:行者123 更新时间:2023-11-28 17:32:37 26 4
gpt4 key购买 nike

我是测试 Javascript 的新手,所以这可能是完全显而易见的。我正在使用 Mocha 框架和断言库 Chai 来测试 Javascript 工具。

我有几个函数可以输出一个包含多个元素的数组。如何使用 Chai 来测试这一点?

这是一个例子:

var chai = require('chai');
var assert = chai.assert;
var expect = chai.expect;

// define an array
var Arr = [3, 4, 5, 6, 10];

console.log(Arr.slice(1, 3))
// outputs [4, 5]

// this will fail
describe('subsetting an array', function() {
it('array subset', function() {
assert.equal(Arr.slice(1, 3), [4, 5])
});
});

因此此测试失败并出现以下错误:

AssertionError: expected [ 4, 5 ] to equal [ 4, 5 ]

(1) 为什么 assert.equal() 失败?这些都是“Array”类型的数据结构

(2) 应该如何使用 Chai 正确测试这一点?

最佳答案

assert.equal() 使用 == 测试比较,并考虑到 slice() 创建一个新数组,尽管两者都有元素数量相同,它们不是同一个元素(它们实际上是两个不同的数组,包含相同的整数)

我认为你应该使用eql方法

// Target array is deeply (but not strictly) equal to [1, 2]
expect([1, 2]).to.eql([1, 2]).but.not.equal([1, 2]);

看看 eqlequal 之间有区别

如果你想坚持断言,我认为(我这里没有控制台来测试它)你可以使用 deepEqual

assert.deepEqual({ tea: 'green' }, { tea: 'green' });

但不太确定它是否适用于数组

关于javascript - 使用 mocha 和 chai 测试数组输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49949023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com