用户和管理员的Rails控制器测试

时间:2015-10-02 09:52:53

标签: ruby-on-rails testing

我想测试我的控制器是否为正常登录用户和管理员用户。

我写了测试,并设置了用户,但是当我必须设置管理员并运行管理员测试时,我不知道该怎么做

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

0 个答案:

没有答案