如何为控制器编写正确的rspec测试

时间:2015-08-16 20:10:51

标签: ruby-on-rails ruby uitableview rspec

我有一个名为Application controller的控制器,下一个方法我想为其编写测试:

  def require_admin
    p current_user.role
    return if current_user && current_user.role == 'admin'
    flash[:error] = "You are not an admin"
    redirect_to root_path
  end

如何为它编写适当的测试,以及它应该是什么样的测试?

1 个答案:

答案 0 :(得分:0)

您不应该测试实现。尝试测试“此控制器操作应如何对非管理员用户执行”,它可能如下所示:

context 'user who is not an admin' do
  before do
    user.role = 'not_admin'
    get :some_action
  end

  it 'is redirected to root_path' do        
    expect(response).to redirect_to('/')
  end
  ...
end