Заглушка Rspec current_user - PullRequest
       5

Заглушка Rspec current_user

0 голосов
/ 08 декабря 2018

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

if @ current_user.nil?сделать что-то еще перенаправить

В настоящее время у меня есть вопросы о том, как заглушить локальную переменную current_user.

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Вы можете заблокировать метод current_user контроллера следующим образом:

let(:current_user) { User.create(...) }

before do
  allow(@controller).to receive(:current_user).and_return(current_user)
end
0 голосов
/ 08 декабря 2018

Почему бы не подключить rspec к вашей тестовой системе вместо того, чтобы заглушить current_user.Вы можете сделать что-то вроде следующего:

  describe "Req #5 - login" do
    it 'loads the login page' do
      get '/login'
      expect(last_response.status).to eq(200)
    end

    it 'loads the user index after login' do
      user = User.create(:username => "Raptor", :password => "Raptor")
      params = {
        :username => "Raptor",
        :password => "Raptor"
      }
      post '/login', params
      follow_redirect!
      expect(last_response.body).to include("Home Page for: Raptor")
    end
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...