Вспомогательные методы Контроллера приложений недоступны для Спецификаций Представлений - PullRequest
12 голосов
/ 19 мая 2011

У меня есть вспомогательный метод с именем current_user в моем контроллере приложений (используется с Authlogic).

Спецификация для представлений, использующих этот помощник, не удалась (но представление работает, когда я использую браузер)

ActionView::Template::Error: undefined local variable or method 'current_user' for #<#<Class:0x0000000229b060>:0x00000002004248>

Я использую rspec 2.6.0.

У кого-нибудь была такая же проблема? Пожалуйста посоветуй. Спасибо

Ответы [ 4 ]

11 голосов
/ 14 июля 2012

Вы можете отключить метод на view.

view.stub(:current_user).and_return(user)

Это также будет работать в спецификациях помощников.

4 голосов
/ 19 мая 2011

Определенные контроллером вспомогательные методы не включены в вспомогательный объект.

http://relishapp.com/rspec/rspec-rails/dir/helper-specs/helper-spec

0 голосов
/ 17 января 2014

проверьте правильную документацию для просмотра спецификации

https://www.relishapp.com/rspec/rspec-rails/v/2-14/docs/view-specs/view-spec#passing-view-spec-that-stubs-a-helper-method

0 голосов
/ 07 марта 2013

Проверьте это: http://apidock.com/rails/ActionController/Helpers/ClassMethods/helper_method.

Вы можете определить помощника внутри ApplicationController и использовать его в контроллерах и представлениях.

...