2012-01-05 25 views
0

我已經得到了link_to "My Account", edit_user_path(current_user)在瀏覽器中工作但Rspec的是給我下面的錯誤Rspec的路由錯誤,:ID =>#用戶ID:無

1) Can edit user details 
    Failure/Error: current_path.should eq(edit_user_path(@user)) 
    ActionController::RoutingError: 
     No route matches {:action=>"edit", :controller=>"users", :id=>#<User id: nil, username: "test_user_6", email: "[email protected]", crypted_password: "cf10df3a34c12b54fd3d99c11395d43ec8f663a48ab8b32917d...", password_salt: "7cZsZhedN2z5Pxbrcl", persistence_token: "59f5a50ac21151f1bc875b5a8b1d14896fb2010dd14dab9e7cd...", perishable_token: nil, created_at: nil, updated_at: nil>} 

該規範

it "can edit user details" do 
    integration_sign_up(@user) 
    click_link("My Account") 
    current_path.should eq(edit_user_path(@user)) 
    end 

運行tail -f log/test.log返回200,所以我猜這是一個Rspec問題?

Started GET "https://stackoverflow.com/users/565/edit" for 127.0.0.1 at 2012-01-05 17:03:30 +1100 
    Processing by UsersController#edit as HTML 
    Parameters: {"id"=>"565"} 
Rendered layouts/_head.html.haml (1.6ms) 
    User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."persistence_token" = 'ec26b6f501ff97a0f6b467c3caabb7e93a1cf97905194d030b465d3163d846e2fad9dc0ccbfc371e16b920c57634e843f544d7015eb9dbafda5711e6ec7b9018' LIMIT 1 
Rendered layouts/_navigation.html.haml (2.9ms) 
Rendered layouts/_flashes.html.haml (0.1ms) 
Rendered layouts/_footer.html.haml (1.1ms) 
Completed 200 OK in 11ms (Views: 10.8ms | ActiveRecord: 0.4ms) 
    (0.2ms) ROLLBACK 

在瀏覽器中測試成功。

我需要一個Rspec的解決方法嗎?或者我做錯了什麼?

鑑於Rspec錯誤id=>#User id:nil我猜這是Rspec?

回答

1

錯誤消息告訴你到底是什麼問題。 @user對象沒有id,所以Rails不能生成路由。請確保@user通過存檔或保存記錄來確定id。

+1

謝謝大衛。問題在於我如何設置用戶'@user = Factory.build(:user)' – vladiim 2012-01-06 04:44:58

相關問題