Rspec 强参数测试失败
Rspec testing fail strong params
暂时不熟悉 Rspec,试图让这个通过一段时间,尝试了几个答案,但还没有成功,我的控制器需要这两个参数,如下所示:
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 文档,如有任何帮助,我们将不胜感激。
试试这个:
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
应该是post :create
,不是get :create
暂时不熟悉 Rspec,试图让这个通过一段时间,尝试了几个答案,但还没有成功,我的控制器需要这两个参数,如下所示:
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 文档,如有任何帮助,我们将不胜感激。
试试这个:
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
应该是post :create
,不是get :create