在 ie8 中使用茉莉花比较数组失败
Using jasmine to compare arrays fails in ie8
显然 ie8 有三个属性,这些属性通过调用 String.prototype.match()
附加到生成的数组中:
input
、index
和lastIndex
(MSDN 文档)
结果是,使用 Jasmine 的.toEqual()
匹配器时,数组比较失败。
我仍在研究单元测试的学习曲线,所以我只是好奇处理这种失败的正确方法是什么。
以下有效,但似乎有点蹩脚:
numArray = str.match(/'d+('.'d+)?/g);
if (numArray && numArray.input) {
delete numArray.index;
delete numArray.input;
delete numArray.lastIndex;
}
Underscore的"差异"方法可以帮助 -
expect(_.difference(['item1', 'item2'], ['item1', 'item2'])).toEqual([]);
http://underscorejs.org/#difference
我认为@monkeyboy的答案是不正确的。
由于underscore.difference()
返回第一个数组中不存在的元素:_.difference([1],[1,2]);
也是[]
,因此测试将在不应该通过的时候通过。我找不到使用下划线解决此问题的方法。
所以我正在使用:
expect(JSON.stringify(result)).toBe(JSON.stringify(expected));
按预期工作。
无论如何,我想知道其他人是如何做到这一点的。
相关文章:
- 需要帮助比较数组内的值,使用forEach循环
- 比较数组中的连续元素不会返回任何结果(javascript)
- 比较数组并使用条件对数组列表进行排序
- 比较数组JavaScript中的对象
- 比较数组中的元素,找出元素的最大和
- 使用JavaScript中的for each函数比较数组中的值
- 如何比较数组中的元素(javascript)
- 在 ie8 中使用茉莉花比较数组失败
- 比较数组慢
- 比较数组时遇到麻烦
- d3 本地存储比较数组 .filter 咖啡脚本;数组变量不起作用
- JavaScript 比较数组
- 如何声明和比较数组变量与其他选定变量
- 使用 .some() 比较数组
- 比较数组函数返回未定义
- 一个函数,用于比较数组中是否存在重复的数字
- Javascript 比较数组中的字符串
- 比较数组和 JSON 数据
- 在javascript中检查并比较数组中的数组
- 使用 indexOf() 比较数组中的字符