インスタンス変数にハッシュを割り当てるコントローラーアクションがあります。私のrspecテストファイルでは、割り当てを使用して、インスタンス変数が期待する値に割り当てられていることをテストしています。何らかの理由で、assigns は文字列キーを持つハッシュを提供します。コントローラーでインスタンス変数を出力すると、シンボルキーがあります
以下のコードを見つけてください。簡素化されています。
class TestController < ApplicationController
def test
@test_object = {:id => 1, :value => 2, :name => "name"}
end
end
私のテストファイル:
describe TestController do
it "should assign test_object" do
get :test
assigns(:test_object).should == {:id => 1, :value => 2, :name => "name"}
end
end
上記のテストはエラー メッセージで失敗します
expected: {:id=>1, :value=>2, :name=>"name"}
got: {"id"=>1, "value"=>2, "name"=>"name"}
なぜそれがそうしているのかを理解するのを手伝ってください。