我有一個驗證模塊,包含在我的控制器中。測試被調用兩次的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