게시물 요청에만 응답해야하는 'bar'라는 'foo'컨트롤러에 대한 회원 경로를 설정하려고합니다. 그러나 나는 RSpec 테스트에서 모든 요청 유형 (GET, POST, PUT, DELETE)에 응답한다는 것을 알았다. 나는 그래서 경로를 정의하는 것은, 그것은 같은 단지 요청을 POST에 응답 할 것을 제한 할 것이라는 인상을레일 "POST"회원 경로가 모든 요청 유형에 응답합니다.
이었다
resources :foo do
member do
post 'bar'
do
end
이 더욱 사실에 의해 확인 보인다 나는 rake routes
그것을 ONLY을 실행할 때 '바'행과 같이 나타낸다 : RSpec에에서, 다음과 같은 시험은 GET, PUT 대 (프로세스가 성공적 요청 제어기를 의미) 실패
bar_foo POST /foo/:id/bar(.:format) {:action=>"bar", :controller=>"foo"}
그러나 &을 삭제 :
를describe FooController do
describe "GET bar" do
it "should not be successful" do
foo = FactoryGirl.create(:foo)
get :bar, :id => foo.id
response.should_not be_ok
end
end
end
여기에 작은 것이 있습니까? "게시"요청에만 응답하도록 내 '바'회원 경로를 어떻게 제한합니까?
편집 :
이 나는 다음과 같은 오류가 있기 때문에 내가 /foo는/명중 할 때, RSpec에 2.0 ActionController::TestCase 중 하나에 문제가 될 것으로 보인다: POST 아무것도하지만 내 단절에 ID/바을 :
Routing Error
No route matches [GET] "/foo/1/bar"
"response.inspect을두고"을하고 출력을 확인합니다. –
응답은 200이며, 이것은 bar 액션이 FooController – plainjimbo
에서 성공했을 때 당신의 온전함을 확인하기 위해 리턴하는 것입니다. POST 이외의 것을 거부하는 비슷한 테스트를 작성하고 작동 시켰습니다. 그것은 올바른 전략이며, 평범한 세부 사항이어야합니다. – Woahdae