2013-05-17 14 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