Rspec2を使用してSinatraアプリケーションをテストしようとしていますが、テストでセッションやヘルパーメソッドにアクセスできません。Sinatra + Rspec2 - セッション/ヘルパーを使用しますか?
spec_helper:
require File.dirname(__FILE__) + "/../myapp.rb"
require 'rubygems'
require 'sinatra'
require 'rack/test'
require 'rspec'
require 'factory_girl'
set :environment, :test
RSpec.configure do |conf|
conf.include Rack::Test::Methods
end
def app
Sinatra::Application
end
app_spec.rb:
require File.dirname(__FILE__) + "/../spec_helper.rb"
describe 'Something' do
it "should do something" do
session["aa"] = "Test"
end
end
これはエラーをスローし、セッション変数を見つけることができません。同様に私のアプリケーションで定義されているヘルパーメソッドを使用することはできません。
rspec specs/app_spec/app_spec.rb
を使用してテストを実行します。
私は間違っていますか?
感謝を。 spec_helper.rbファイルが正しく含まれています(私はそこに定義されている他のものにアクセスできます)、それは問題ではありません。私はモジュラースタイルを使用していません。他のアイデア? – Pogopuschel
'include Rack :: Test :: Methods'とapp宣言をspecに移して、それが動作するかどうかを見てみましょう。あなたはセッションのもののために行くのではなく、動作することを確認するために、最初に別の種類のテストを試みるかもしれません。私の編集を参照してください。 – iain
btw、Rack :: Testを使用して実現したばかりの(face palm!)は本当に統合テストのためのものなので、ヘルパーやセッションに直接アクセスすることはありません。テストヘルパーのこの記事を読むhttp://japhr.blogspot.com/2009/03/sinatra-innards-deletgator.html – iain