使用RSpec,会话始终为空

时间:2014-01-01 22:06:55

标签: ruby-on-rails rspec

有以下代码:

  describe 'Some title' do
    before do 
      session = ActionController::TestSession.new 
      session[:state] = "12334"
      get '/api/v1/menus', format: :json 
    end


    it 'some text' do
      expect(response).to be_success
      json = JSON.parse(response.body)
      puts json
    end
  end

控制器代码:

class Api::V1::MenusController < Api::V1::ApiV1Controller

  def index
    render json: session
  end
end

但是控制器总是返回一个空的会话。我该如何解决?

1 个答案:

答案 0 :(得分:0)

尝试添加此内容:

describe 'Some title', :type => :controller do

并删除session = ActionController::TestSession.new

RSpec需要知道你在测试中正在做“控制器事”。您可以按照上面的说明或将测试放在 spec / controllers 中。