2017-11-15 4 views
0

は、しばらくの間、合格RSPECとその慣れていないために、このいずれかを取得しようとすると失敗し、カップルの答えを試みたが、まだ運が、私は次のように私のコントローラ上で必要とされているこれら2つのパラメータを持っていない:RSpecのテストが強いのparams

class UsersController < ApplicationController 
    def new 
    @user = User.new 
    end 

    def create 
    @user = User.new(user_params) 
    if @user.save 
     redirect_back fallback_location: new_user_path 
    else 
     render :new 
    end 
    end 
private 
    def user_params 
    params.require(:user).permit(:username, :password) 
    end 
end 

、これは私に問題を与えているRSpecのテストである:ここ

describe "GET #create" do 
    it "returns http success" do 
     get :create 
     expect(response).to have_http_status(:success) 
    end 
    end 

は、私が取得していますエラーです:

1) UsersController GET #create returns http success 
    Failure/Error: params.require(:user).permit(:username, :password) 

    ActionController::ParameterMissing: 
     param is missing or the value is empty: user 

私は今rspecのドキュメントを見ていますが、どんな助けにも感謝します。

+0

あなたのparamsは、' {形式でなければなりません"}}' –

+0

ありがとうナンドゥ、正確にどこにパラメータを追加しますか?それはgetメソッドの後ですか? – Lucky500

答えて

4

はこれを試してみてください:ユーザー=> {::ユーザー名=> ""、:パスワード=> "これはpost :createあるべき

describe "POST #create" do 
    it "returns http success" do 
    post :create, params: { user: { username: "name", password: "password" } } 
    expect(response).to have_http_status(:success) 
    end 
end 

、ないget :create

+0

ありがとうございましたChivorn、私は今、別のエラーを取得していますが、私はこのソリューションが動作すると思います。取得しても。 – Lucky500

+0

@ Lucky500 :)エラーを表示できますか? –

+0

ああ申し訳ありませんが、それ以上関係はありませんが、ここでは: – Lucky500

関連する問題