컨트롤러 작업을 통해 인스턴스 변수에 해시를 할당하고 있습니다. 내 rspec 테스트 파일에서 인스턴스 변수가 내가 예상 한 값에 할당되어 있는지 테스트하기 위해 할당을 사용하고 있습니다. 어떤 이유로, assigns는 문자열 키가있는 해시를 제공합니다. 컨트롤러에 인스턴스 변수를 인쇄하면 심볼 키가 표시됩니다.rspec은 해시 키를 문자열로 변환합니다.
아래 코드를 찾으십시오. 단순화되었습니다.
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"}
실패합니다.
([해시 키의 문자열 변환을 원치 않는 기호]의 중복 가능성 http://stackoverflow.com/questions/4348195/unwanted-symbol-to-string - 해시 - 키 변환) –