Как протестировать с помощью RSpec плагин Rails, используя «link_to» и «current_page»?

#ruby-on-rails #plugins #rspec

Вопрос:

Я пишу плагин Rails, который создает меню в представлении. Я использую link_to для создания ссылки и current_page? установки class="active" на текущей странице.

У меня есть include d ActionView::Helpers::UrlHelper , так что я могу им воспользоваться link_to .

Чтобы начать current_page? работать в представлении, мне пришлось унаследовать текущий класс (по-видимому ActionView::Base ), и он отлично работает. К сожалению, это полностью нарушает тесты с помощью RSpec.

Я звоню link_to и current_page? вот так:

 def menu(options = {}, amp;block)
  carte = my_menu.new(self)
  yield carte
  carte.to_s unless carte.empty?
end

class my_menu
  include ActionView::Helpers::TagHelper
  include ActionView::Helpers::UrlHelper

  def initialize(base)
    @base = base
  end

  def link
    @base.link_to(name, url_options, html_options)
    @base.current_page?(url_options)
  end
end
 

И я получаю эту ошибку с помощью RSpec:
Неопределенный метод `link_to’ для #< Спецификация::Рельсы::Пример::RailsExampleGroup::Подкласс_1:0x24afa90>

Есть какие-нибудь зацепки?

Ответ №1:

 include ActionView::Helpers::UrlHelper
 

В вашей спецификации должна быть решена проблема. Или в вашем файле spec_helper.rb. Я думаю, что это в основном то, что делают спецификации представлений по умолчанию.