我在我的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