아주 간단한 문제를 어떻게 제외하고 (나는 생각이있을 것이다),하지만 몇 가지 문제에 봉착 :레일 RSpec에 라우팅 : 조치를 테스트 : NOT 경로를
레일에서3.1.0.rc6/RSpec에 2.6.0 나는 내 '제품의 자원의 라우팅을 테스트하기 위해 노력하고있어, 다음과 같이 라우팅 :
resources :products, :except => [:edit, :update]
올바른 행동에 대한 라우팅이 작동하지만, 내가 편집 및 업데이트 경로 이이되지 않도록하려면 호출 가능. 여기에 내가 시도하고있는 작업은 다음과 같습니다
it "does not route to #edit" do
lambda { get("/products/1/edit") }.should raise_error
end
Failure/Error: lambda { get("/products/1/edit") }.should raise_error expected Exception but nothing was raised # ./spec/routing/products_routing_spec.rb:11:in `block (3 levels) in '
... 그리고 아직, 내가
it "does not route to #edit" do
get("/products/1/edit").should_not route_to("products#edit", :id => "1")
end
을 실행할 때 나는
Failure/Error: get("/products/1/edit").should_not route_to("products#edit", :id => "1") ActionController::RoutingError: No route matches "/products/1/edit"
여기에 무슨 일이 일어나고 있는지 어떤 생각을? 나는 이것이 매우 단순해야한다고 생각하지만, 나는 그것을 이해하는 것처럼 보이지 않는다.
우승자가 있습니다. 이상하게 생각합니다. 레일즈 2는 "에러 발생"람다를 다루었지만 3.1은 분명히 아닙니다. be_routable 메소드에 대해서조차 몰랐다. – PlankTon
매우 유용합니다! 위의 테스트는 반드시 /spec/routing/xxxx.rb에 있어야합니다. 그렇지 않으면 오류가 발생하여 실패합니다. 예를 들어, /spec/requests/xxxx.rb 파일에는이 파일을 저장할 수 없습니다. –