Тестирование представлений с помощью rspec - undefined current_user в вспомогательном файле при отображении представления - PullRequest
4 голосов
/ 01 ноября 2011

Я использую rspec, с devise и пытаюсь проверить мои взгляды.В вспомогательной функции, которую вызывает мое представление, я использую переменную current_user. На практике это прекрасно работает, но, используя rspec, я получаю печальную «неопределенную переменную или метод current_user».

Я много пробовалвещи, которые не работают.

@user = FactoryGirl.build_stubbed(:user)
assign(current_user, @user)
sign_in :user, @user
def current_user
  @user
end
current_user = @user
view.stub!(:current_user).and_return @user
assign[:currrnet_user] = @user

Кто-нибудь знает, как это сделать?Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 09 декабря 2018

Я должен был сделать это, чтобы заставить его работать.

RSpec.describe 'foos/index.html.erb', type: :view do                                                              
  before do                                                                     
    controller.singleton_class.class_eval do                                    
      def current_user                                                        
        User.find_by(username: 'schmoe')                                     
      end                                                                     
      helper_method :current_user                                             
    end                                                                         
    render                                                                      
  end

  ...                                                                           
end                                                                            
0 голосов
/ 02 ноября 2011

Итак, решение вспомогательных методов заключается в их заглушении. Мне не очень нравится это решение, потому что я вижу его как ошибку, но это способ сделать то, что нужно сделать.

...