2011-02-09 79 views
0

使用Rails 3.0.3。問題測試rails帖子

我在routes.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"} 
 

這裏有什麼錯?

回答

0

那麼,問題是在參數值

: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