我不明白这个输出:
Expected [ ({ label: 'label1', value: 'value1' }), ({ label: 'label2', value: 'value2' }), ({ label: 'label3', value: 'value3' }) ] to equal [ Object({ label: 'label1', value: 'value1' }), Object({ label: 'label2', value: 'value2' }), Object({ label: 'label3', value: 'value3' }) ]
Jasmine告诉我测试失败了,这就是问题所在。我没有看到问题。我看到两个对象数组应彼此相等且做彼此相等。
我有没有得到一些微妙的东西?这与期望实际上没有被识别为'对象({...})'有关吗?当我离开我的Mac没有运行npm安装时,茉莉花有什么变化吗?有人改变了宇宙的引力常数吗?
明信片上的答案。或者这里会更好。
答案 0 :(得分:1)
你的测试断言是什么?如果使用[{ name: 'Alice', typeID: 1 }, { name: 'Bob', typeID: 2 }]
它应该有效 - 尽管对象不同,.toEqual
会进行深度比较。
答案 1 :(得分:-1)
Jasmine正在对象级别进行比较,而不是在对象属性级别进行比较。
IIRC Jasmine没有深度平等(在哪里,iirc,Mocha),但是,你可以这样做:
result.forEach(function(item) {
var item = expectedResults.filter(function(e) {
return e.label === item.label && e.value === item.value;
})
expect(item).not.toBeNull();
});