2013-05-17 10 views
0

我想在控制器规范中设置auth_token值。我有以下几点:在RSspec控制器中设置会话[:auth_token]规范

describe ApiEditController do 
    before do 
    session[:auth_token]='abc123' # doesn't work 
    end 

    it 'should edit item' do 
    # lets create a location 
    #.... 
    end 
end 

,但是当我检查了会议,我没有得到任何提及的auth_token的:

{"format"=>"json", "flash"=>#<ActionDispatch::Flash::FlashHash:0x007fe592813cb8 @used=#<Set: {}>, @closed=false, @flashes={}, @now=nil>} 

如果我通过web界面做的一样,我得到:

{"session_id"=>"f16e0a6a0b4942bcad2fd191b49c9078", "the_last_url"=>"http://localhost:3000/arc/menus/12/edit", "_csrf_token"=>"MuQfgciiZjVpaAYiwrbDHGvcyChf6m0ex2QV8GHzOIs=", "auth_token"=>"vfieGDt_iEmSQjllLL5N6g"} 

为什么我没有在我的spec请求中获取auth_token值?它是否以不同方式访问Rack :: Middleware?

THX

回答

1

使用request.session,而不是仅仅session

+0

它看起来像abc123''做到了'的request.session [ 'AUTH_TOKEN'] =',如果你编辑的答案,我会接受。 – timpone

+0

对,'request' :) – enthrops