3

私は API を開発しており、ログイン方法をテストしたいと考えていました。spec/api/の代わりにある API の仕様spec/controller。rspec-rails を使用しています。今、私は次のような仕様を持っています:

describe "/api/login.json", :type => :api do
  let(:user) { FactoryGirl.create(:user) }

  context "when called with correct credentials" do
    before(:all) do
      post "/api/v1/passenger/login.json",:email => user.email, :password => user.password
    end

    it "responds with HTTP 200" do
      last_response.status.should == 200
    end

    it "sets the session correctly" do
      session[:user_id].should == user.id # <-- ### Here ###
    end
  end
end

失敗します。sessionはゼロです。セッション変数にアクセスするにはどうすればよいですか?

ブロックに何かを含める必要があると思いRSpec.configureますか?

4

2 に答える 2

0

約後。200時間のグーグルで、私は自分で答えを見つけました。

それはこれらの魔法の言葉に要約されます:

module FoobarHelper
  def session
    last_request.env['rack.session']
  end
end

RSpec.configure do |c|
  c.include FoobarHelper, :type => :api
end
于 2012-06-13T23:05:44.820 に答える