我想测试我的控制器是否为正常登录用户和管理员用户。
我写了测试,并设置了用户,但是当我必须设置管理员并运行管理员测试时,我不知道该怎么做
setup do
user = User.create!(email: "example@mail.com",
first_name: "name", last_name: "surename",
password: "password", password_confirmation: "password")
@post = user.posts.create!(title: "my title", content: "bla bla bla")
sign_in user
end
test "should get #index" do
get :index
assert_response :success
assert_not_nil assigns(:posts)
end
test "should show post" do
get :show, id: @post
assert_response :success
end
test "should get #new" do
get :new
assert_response :redirect
end
test "should get #edit" do
get :edit, id: @post
assert_response :redirect
end
test "should get #destroy" do
get :destroy, id: @post
assert_response :redirect
end
=begin
test "should create post" do
assert_difference('Post.count') do
post :create, post: { title: "title", content: "content" }
end
assert_redirected_to post_path(assigns(:post))
end
test "should get #update" do
patch :update, id: @post, post: { title: "oneone", content: "twotwo" }
assert_redirected_to post_path(assigns(:post))
end
test "should get #destroy" do
assert_difference('Post.count',-1) do
delete :destroy,id: @post
end
assert_redirected_to root_path
end
=end
end
我想在管理员的开始和结束之间测试代码,但是如何设置管理员用户?我尝试这样做,但它不起作用。
setup do
admin = User.create!(email: "example@mail.com",
first_name: "name", last_name: "surename",
password: "password", password_confirmation: "password", admin:true)
sign_in admin
end