我从Mocha收到以下失败消息:
def appealer_params
params.require(:appealer).permit(:first_name, :last_name)
end
这是我的测试代码:
def create
@appeal = Appeal.new(appeal_params)
if appealer_params.present?
appealer = Appealer.create(appealer_params)
@appeal.appealer = appealer
end
if @appeal.save
respond_with @appeal
else
respond_with {:error}
end
end
这是我的实际代码:
Uncaught AssertionError: expected Object { name: 'John Doe' } to be Object { name: 'John Doe' }
+ expected - actual
但是我不应该从Mocha收到失败消息,因为两个对象都是一样的。但不知怎的,他们并非如此,我真的不知道我做错了什么。
我已经检查了两个对象的间距,所以不应该这样。
答案 0 :(得分:1)
2个对象即使数据相同也不能相同,因为它们作为2种不同的存在方式存储在内存中
var data = {
name: 'piyush'};
var data1 = {
name: 'piyush'
}
data == data1 // false
答案 1 :(得分:0)
如果两个对象的键具有相同的顺序/具有相同的结构,则可以使用JSON.stringify然后比较字符串。这只适用于所有键都是原始值的情况,如果有另一个对象作为键之一,则需要更复杂的东西。