На этой странице показана основная проблема сеанса тестирования с rspec
и sinatra
.
Основная проблема в том, что переменная session
недоступна из тестового кода. Чтобы решить эту проблему, он предлагает (и я подтверждаю) добавить линии охоты на spec/spec_helper.rb
:
def session
last_request.env['rack.session']
end
Он сделает доступным объект сессионного сеанса из последнего запроса в тестовом коде.
Вот мой код контроллера, который читает параметр code
и сохраняет его значение в session
:
post '/step2callback' do
session['code'] = params['code']
end
Тогда вот тестовый код:
context "making an authentication" do
before do
post "/step2callback", code: "code_sample"
end
it "reads the param code and saves it at session" do
expect(session['code']).to eq("code_sample")
end
end