Ruby on Rails Спецификация запроса RSpec: невозможно передать параметры - PullRequest
0 голосов
/ 24 февраля 2019

Имея некоторые трудности с передачей моей спецификации аутентификации для API, который я строю в Rails.

Моя спецификация выглядит так:

RSpec.describe 'POST /login', type: :request do
  let(:user) { create(:user) }
  let(:url) { '/login' }
  let(:params) do
    {
      user: {
        username: user.username,
        email: user.email,
        password: user.password
      }
    }
  end

  context 'when params are correct' do
    before do
      post url, params: params
    end

    it 'returns 200' do
      expect(response).to have_http_status(200)
    end
...

Однако, когда я пытаюсь запуститьэто дает мне следующую ошибку: TypeError: no implicit conversion of nil into String

Когда я использую pry, чтобы войти и отладить его, переменная params преобразуется в правильный хеш: {:user=>{:username=>"MyString", :email=>"mystring", :password=>"fooBar"}}, и URL-адрес также правильный: "/login"

Он также не работает при использовании самого хэша вместо переменной, например: post url, params: {:user=>{:username=>"MyString", :email=>"mystring", :password=>"fooBar"}}

Однако странно, что я могу передать что-то вроде {:user=>'hello'} ион будет запущен, хотя и вернет ошибку 401.Что я здесь не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...