Я пытался протестировать простое представление индекса, в котором есть следующий код:
- 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
При запуске спецификаций происходит сбой на линии - if can? :destroy, MyModel
Failure/Error: render
ActionView::Template::Error:
undefined method `authenticate' for nil:NilClass
Нет трассировки, нет оснований для ...
Я подумал, что, возможно, я не авторизован иподписывается при тестировании представлений, но Devise::TestHelpers
следует включать только в тесты контроллера (и вот как у меня это получается).
Я пытался переопределить метод, может?как в Ability
, так и в контроллере, но это не дало эффекта.