在Rspec集成测试中设置对象的会话

che*_*ell 6 integration-testing rspec2 ruby-on-rails-3

我的控制器中有以下内容:

def create
    @board = Board.find(session[:board])
    @greeting = @board.Greetings.build(params[:greeting])
    respond_to do |format|
      if @greeting.save
         format.js   { render :action => "success" }
      else
        format.js    { render :action => "failure" }
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

在我的rspec硒测试中,我想为电路板设置会话.但似乎我做不到

  describe "greeting creation" do

     before(:each) do
        @board = Factory(:board)
        session[:board] = @board.id
      end
Run Code Online (Sandbox Code Playgroud)

这会出现以下错误:

  Failure/Error: session[:board] = @board.id
     NoMethodError:
       undefined method `session' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

如何设置会话以使此测试有效?

Ed *_*nes 1

我遇到了这个问题并通过使用 ApplicationController.session[:key] 来“解决”它。

但现在我收到错误TypeError: can't convert Symbol into Integer level_spec.rb:7:in[]='`