Каков наилучший способ справиться с тестированием проблем при использовании в контроллерах Rails 4? Скажем, у меня есть тривиальная проблема Citations
.
module Citations
extend ActiveSupport::Concern
def citations ; end
end
Ожидаемое поведение при тестировании заключается в том, что любой контроллер, который включает эту проблему, получит эту конечную точку Citations
.
class ConversationController < ActionController::Base
include Citations
end
Simple.
ConversationController.new.respond_to? :yelling #=> true
Но каков правильный способ проверить эту проблему изолированно?
class CitationConcernController < ActionController::Base
include Citations
end
describe CitationConcernController, type: :controller do
it 'should add the citations endpoint' do
get :citations
expect(response).to be_successful
end
end
К сожалению, это не удается.
CitationConcernController
should add the citations endpoint (FAILED - 1)
Failures:
1) CitationConcernController should add the citations endpoint
Failure/Error: get :citations
ActionController::UrlGenerationError:
No route matches {:controller=>"citation_concern", :action=>"citations"}
# ./controller_concern_spec.rb:14:in `block (2 levels) in <top (required)>'
Это надуманный пример. В моем приложении у меня другая ошибка.
RuntimeError:
@routes is nil: make sure you set it in your test setup method.