我在我的rspec测试中遇到了错误天数。后来我发现,问题是用符号代替串字符串vs符号rails
user_response = JSON.parse(response.body, symbilize_names: true)
expect(user_response[:email]).to eql(@user.email)
因为user_response[:email]
回报nil
因为某些原因
但是,当我将其更改为user_responce['email']
测试通过
调试与byebug检查USER_RESPONSE的价值
(byebyg) user_response
{"id"=>1, "email"=>"[email protected]", "created_at"=>"2017-08-30T14:22:43.597Z", "updated_at"=>"2017-08-30T14:22:43.597Z"}
什么在上面的情况下使用符号和字符串之间的区别?
你有一个错字:'symbilize_names'应该是'symbolize_names' – Stefan
(因此'JSON.parse'应该引发一个'ArgumentError',但这是一个不同的故事) – Stefan