에 내가 일하고 있어요 응용 프로그램의 경로를 가지고, 그것은 RSpec에 라우팅 테스트에서 오류 만이 아닌 응용 프로그램
match ":place_id/:id", :controller => "companies", :action => "show", :place_id => /\S{2}/
그래서 브라우저에서 나는이 URL로 이동할 수 있습니다 ... 다음과 같습니다.
mylocalmachine/GB/서버에서 일부-기업
는 모든 좋은 기록합니다.
Started GET "/gb/some-company" for 127.0.0.1 at 2013-04-30 17:44:52 +0100
Processing by CompaniesController#show as HTML
Parameters: {"place_id"=>"gb", "id"=>"some-company"}
컨트롤러 사양에서이 경로와 동작을 테스트하려고합니다.
get "/gb/some-company"
는하지만이 오류를
ActionController::RoutingError: No route matches {:controller=>"companies", :action=>"gb/some-comapny"}
참고를 얻을 : 나는 시험 작동하는지하지만 아무 행운을 볼 위해 routes.rb 파일의 상단에이 경로를 퍼팅 시도했다. 또한 다른 모든 스펙은 통과 중입니다. 제가 잘못 될 수있는 아이디어는 인정 될 것입니다.
UPDATE : 이것은 ... 테스트의 모습 RSpec에 컨트롤러 테스트는 설명 컨트롤러의 액션 이름에 직접 요청과 일치하기 때문이다
params_from(:get, "/gb/some-company").should == {:controller => "companies", :action => "show", :country_id => "gb", :id => "some-company"}
예,이 테스트는 실제로 매개 변수가 URL에서 제대로 추출되었는지 테스트하는 데 효과적입니다. 실제 테스트를 보여주기 위해 질문을 업데이트했습니다. 테스트를 작성할 수있는 더 좋은 방법이 있습니까? – cih
내 업데이트 된 답변을보세요 –
그게 정확히 내가 뭘하는지, 레일 2 ~ 3 및 RSpec에서 2 버전으로 앱을 업그레이드하는 중입니다. 도움에 감사드립니다! – cih