//spec
it('check process data to see if it returns correct JSON object', function() {
var dataExpected = [];
dataExpected.push({
image : "https://katmou.files.wordpress.com/2011/11/blade_runner.jpeg",
title : "Harrison",
id : 1
});
expect(dataAfter).toEqual(dataExpected);
});
错误:
[ERROR] : . THERE WERE FAILURES!
[ERROR] : . ============================================================
[ERROR] : . Recap of failing specs:
[ERROR] : . ------------------------------------------------------------
[ERROR] : . viewP controller check process data to see if it returns correct JSON object. - Expected [ { image : 'https://katmou.files.wordpress.com/2011/11/blade_runner.jpeg', title : 'Harrison', id : '1' } ] to equal [ { image : 'https://katmou.files.wordpress.com/2011/11/blade_runner.jpeg', title : 'Harrison', id : 1 } ].
之后的数据与预期相同,但仍然失败,为什么?
干杯。
答案 0 :(得分:1)
您希望id
属性为1
,但结果为'1'
。
答案 1 :(得分:0)
从Jasmine 2.0 Doc http://jasmine.github.io/2.0/introduction.html开始,.toEqual
应该适用于对象,但是您传递的数组包含一个对象,因此它可能不同。
您确定 dataAfter
的声明方式相同吗?(数组中的obj)
另一种解决方案可以比较两个数组将它们作为字符串传递给JSON.stringify()
。
请参阅:Object comparison in JavaScript