Маршруты Rspec redirect_to не оправдывают ожиданий (или неправильно анализируются?), почему?
-
11-09-2019 - |
Вопрос
Кажется, мой маршрут rspec для :controller => 'phones', :action => 'edit' работает... он должен быть 'phones/123/edit' и IS согласно тестам rspec и маршрутам rake.Но когда я создаю ожидание redirect_to, оно терпит неудачу.
Вот тест маршрутов для URL-адреса:
it "maps #edit" do
route_for(:controller => "phones", :action => "edit", :id => "1").should == "/phones/1/edit"
end #THIS TEST PASSES
Вот ожидание, которое терпит неудачу:
put :update, :id => "1", :phone => {}
response.should redirect_to :controller => 'phones', :action => 'edit'
И вот сообщение, которое я получаю в тестах:
expected redirect to {:controller=>"phones", :action=>"edit"},
got redirect to "http://test.host/phones/1089/edit" # BUT THIS THE URL I WAS EXPECTING!
Что за шизницы?
Решение
Причина, по которой это не удается, заключается в том, что вам не хватает идентификатора в вашем ожидании.Должен быть:
response.should redirect_to :controller => 'phones', :action => 'edit', :id=>1
Не связан с StackOverflow