Я пытался протестировать простое представление индекса, внутри которого есть следующий код:
- if can? :destroy, MyModel
%th Options
MyModelsController
имеет следующие параметры (Inherited Resources + CanCan + Devise):
class MyModelsController < ApplicationController
inherit_resources
nested_belongs_to :mymodel
before_filter :authenticate_user!
load_and_authorize_resource :project
load_and_authorize_resource :mymodel, :through => :project
При запуске спецификаций происходит сбой на линии - если можно? : destroy, MyModel
Failure/Error: render
ActionView::Template::Error:
undefined method `authenticate' for nil:NilClass
Нет трассировки, не на чем основываться ...
Я подумал, что, возможно, я не авторизован и не подписан при тестировании представлений, но Devise :: TestHelpers
должен быть включен в тесты контроллера (и вот как он у меня).
Я пытался переопределить метод может? как в Способности
, так и в контроллере, но это не дало никакого эффекта.