我正在使用以下版本:
"jasmine-core": "~2.8.0",
"jasmine-spec-reporter": "~4.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"@types/jasmine": "~2.8.3",
称我为愚蠢,但我需要这个。通过价值平等而不是通过参考
function isEqual(var1, var2) {
//....
// return true or false
}
测试:
isEqual(1,1) // true
isEqual("Test", "Test") // true
isEqual([1,2,3], [3,2,1]) // true => irrespective of array index
isEqual({a:1, b:2}, {b:2, a:1}) // true
isEqual([{a:1}, {b:2}], [{b:2}, {a:1}]) // true
isEqual([1,2, {a:{b:2}}], [2,1, {a:{b:2}}]) // true
isEqual([{a:[1,2], b:10}], [{b:10, a:[2,1]}]) // true
背景:我正在使用Jasmin进行Angular测试。检查时遇到困难
值相等的对象。 expect().toEqual()
检查对象类型是否相等。我想比较对象数组,而不管数组索引如何。
我得到的是
expect([{ a: 1 }, { b: 2 }]).toEqual([{ a: 1 }, { b: 2 }]); // true
expect([{ a: 1 }, { b: 2 }]).toEqual([{ b: 2 }, { a: 1 }]); // false
我想要的是:
expect([{ a: 1 }, { b: 2 }]).toEqual([{ a: 1 }, { b: 2 }]); // true
expect([{ a: 1 }, { b: 2 }]).toEqual([{ b: 2 }, { a: 1 }]); // true
答案 0 :(得分:0)
尝试toDeepEqual
expect([{ a: 1 }, { b: 2 }]).toDeepEqual([{ a: 1 }, { b: 2 }]);
expect([{ a: 1 }, { b: 2 }]).toDeepEqual([{ b: 2 }, { a: 1 }]);