Мой вспомогательный код выглядит следующим образом (и, между прочим, работает нормально):
module ProvidersHelper
def call_to_review(provider)
if user_signed_in? && review = Review.find_by_provider_id_and_user_id(provider.id, current_user.id)
link_to "Edit Your Review", edit_provider_review_path(provider, review), :class => "call_to_review"
else
link_to "Review This Provider", new_provider_review_path(provider), :class => "call_to_review"
end
end
end
К сожалению, при запуске моих тестов возникает следующая ошибка:
undefined method `user_signed_in?' for #<ActionView::Base:0x00000106314640>
# ./app/helpers/providers_helper.rb:3:in `call_to_review'
Очевидно1007 * не включены в мои помощники, когда rspec выполняет тест.Любые предложения, которые могут помочь этой работе?
Редактировать: чтобы предоставить немного больше информации, мой spec_helper действительно имеет следующее:
config.include Devise::TestHelpers, :type => :controller
config.include Devise::TestHelpers, :type => :view
config.include Devise::TestHelpers, :type => :helper
(К сожалению, я не мог заставить его работать:type => [:controller, :view, :helper]
)
В любом случае, я считаю, что эти строки добавляют в ваши тесты sign_in(scope, object)
(и других) помощников по тестированию.Они не добавляют помощников, которые вы фактически использовали бы в своем контроллере / коде представления.