Я пишу спецификацию для контроллера RESTFul, который я использую RSpec, и мне нужно войти в систему через Devise.
Следующий код приводит к тому, что пользователь правильно вошел в первый оператор it
, но не во второй.
Если я изменю before
и after
с :all
на :each
, оба оператора завершатся неудачно, как если бы пользователь не вошел в систему.
RSpec.describe SomeController, type: :controller do
describe '#index' do
before :all do
@account = create(:account)
@user = @account.users.first
sign_in(@user)
end
after :all do
sign_out(@user)
end
it 'should load all objects of a @user' do
get :index
body = JSON.parse(response.body)
expect(body['data'].length).to eq(4)
expect(response).to have_http_status(:ok)
end
it 'should load all objects of a @user' do
get :index
body = JSON.parse(response.body)
expect(body['data'].length).to eq(4)
expect(response).to have_http_status(:ok)
end
end
end
Я нашел несколько ответов на этот вопрос, один из которых использует Cookie Store в тестах ENV (которые не исправили это), а также этот RSpec с устройством - только первый тест зарегистрирован в , который также не помог мне с проблемой.
RSpec 3.7
Рельсы 5.2
Разработать 4.4
Помощь будет высоко оценена! спасибо