Сообщение о тестировании рельсов

Использование Rails 3.0.3.

У меня есть следующий маршрут в route.rb:


 match "user/create_new_password/:reset_password_key" =>"users#create_new_password", :via=>[:get, :post], :as=>:create_new_password

При использовании этого маршрута в представлении с формой он работает нормально, однако я не могу его проверить. Я делаю это в своем функциональном тесте:


test "fail create password with invalid key" do
   post :create_new_password, {:create_new_password=>{:password=>"1", :password_confirmation=>"1"}, :reset_password_key=>"user.reset_password_key"} 
end

И я получаю сообщение об ошибке:


ActionController::RoutingError: No route matches {:create_new_password=>{:password=>"1", :password_confirmation=>"1"}, :reset_password_key=>"user.reset_password_key", :controller=>"users", :action=>"create_new_password"}

Что здесь не так?


person Joao Pereira    schedule 09.02.2011    source источник


Ответы (1)


So, the problem was in the parameter value for

:reset_password_key


test "fail create password with invalid key" do
   post :create_new_password, {:create_new_password=>{:password=>"1", :password_confirmation=>"1"}, :reset_password_key=>"user.reset_password_key"} 
end

Кажется, что-то не так с . (точка) в значении параметра.

Если я перейду на другое значение без "." (точка), все в порядке. Следующее работает, как и ожидалось:


test "fail create password with invalid key" do
   post :create_new_password, {:create_new_password=>{:password=>"1", :password_confirmation=>"1"}, :reset_password_key=>"user_reset_password_key"} 
end

person Joao Pereira    schedule 09.02.2011