2012-03-26 11 views
0

私はいくつかのrspecテストを書いており、今はユーザー作成後にリダイレクトを検証したいと思っています。ユーザーの作成を含む、他の多くのテストが機能します。Rails Rspec経路が明らかに存在するときに経路エラーが発生しない

ただし、次のテストの最後には失敗しません:

describe "success" do 
    before(:each) do 
    @attr = { :username => "woweee123", 
       :email => "[email protected]", 
       :password => "password123", 
       :password_confirmation => "password123"} 
    end 

    it "should create the user" do 
      lambda do 
      post :create, :user => @attr 
      end.should change(User, :count) 
    end 

    it "should redirect to a user show page after creation" do 
     lambda do 
       post :create, :user => @attr 
     end.should redirect_to(user_path(assigns(:user))) 
    end 


    end 

失敗したテストがある:Noルートマッチ{:アクション=> "ショー"、:コントローラ=> "ユーザー"

をしかし、私が手動で(localhost上で)ユーザーを作成すると、リダイレクトは明らかに機能します。なぜこれは失敗するのですか?

答えて

0

答えは、私はそれがどのように見えるようにテストを変更しなければならなかったということです。

it "should redirect to a user show page after creation" do 
    post :create, :user => @attr 
    response.should redirect_to(user_path(assigns(:user))) 
end 

これは動作します。

0

assigns(@user).new_record? 

はもうポスト後に事実ではない場合、私はチェックします。あなたのテストではIDがないようです。いくつかの妥当性検査は失敗しましたか?興味のある方のために

関連する問題