显然ie8有三个属性通过调用String.prototype.match()
附加到结果数组中:
input
,index
和lastIndex
结果是使用Jasmine的.toEqual()
匹配器时数组比较失败。
我仍然在单元测试的学习曲线上工作,所以我只是好奇正确的方法来处理这个失败。
以下作品但看起来有点蹩脚:
numArray = str.match(/\d+(\.\d+)?/g);
if (numArray && numArray.input) {
delete numArray.index;
delete numArray.input;
delete numArray.lastIndex;
}
答案 0 :(得分:3)
Underscore的'差异'方法可以提供帮助 -
expect(_.difference(['item1', 'item2'], ['item1', 'item2'])).toEqual([]);
答案 1 :(得分:1)
我认为@ monkeyboy的答案不正确。
由于underscore.difference()
返回第一个数组中第二个数组中不存在的元素:_.difference([1],[1,2]);
也是[]
所以测试将在不应该传递时通过。我找不到使用下划线解决这个问题的方法。
所以我正在使用:
expect(JSON.stringify(result)).toBe(JSON.stringify(expected));
按预期工作。
无论如何,我想知道别人是怎么做的。