我有一个名为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
如何为它编写适当的测试,以及它应该是什么样的测试?
答案 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