我有一个验证模块,包含在我的控制器中。测试被调用两次的RSpec模拟
在我的用于管理员操作的控制器中,他们都继承了AdminController
,它们在每个控制器之前调用require_permission :admin
以确保当前用户是管理员。
在我的另一个控制器中,我拨打require_permission? :view_admins
来验证用户是否有权查看其他管理员的详细信息。当我运行该规范来测试require_permission :view_admins
被调用时,我得到一个错误,说require_permission
被调用了:admin
。
如果我改变我的规范,并添加一个测试,require_permission?
被调用:admin
在我的测试中它被调用:view_admins
然后规范通过。有没有办法只用:view_admins
来测试它呢?
这里是通过规范:
it 'requires view_admins permission' do
expect(controller).to receive(:require_permission).with :admin
expect(controller).to receive(:require_permission).with :view_admins
get :admins
end
和发生故障的规格:
it 'requires view_admins permission' do
expect(controller).to receive(:require_permission).with :view_admins
get :admins
end