私は現在、devise を認証として使用し、capybara + rspec をテスト環境として使用しています。
そして、管理者が予期せずログアウトしたように見えるという奇妙な動作があります。
これが私のテストコードです
require 'spec_helper'
require 'helpers/myapp/login_helper'
describe "Crawler" do
describe "UpdateMainMenus" do
it "should work" do
@admin = FactoryGirl.create(:myapp_admin)
login_as @admin, :scope => :admin
visit admin_cron_jobs_url(subdomain: "myapp")
current_url.should == admin_cron_jobs_url(subdomain: "myapp")
puts ""
puts current_url
visit admin_cron_jobs_url(subdomain: "myapp")
current_url.should == admin_cron_jobs_url(subdomain: "myapp")
puts ""
puts current_url
end
end
end
そして helpers/myapp/login_helper.rb
include Warden::Test::Helpers
Warden.test_mode!
そして、rspec_helper.rb に Warden を設定しました。
config.after(:each) { Warden.test_reset! }
出力は次のとおりです。
http://myapp.example.com/admin/cron_jobs
F
Failures:
1) Crawler UpdateMainMenus should work
Failure/Error: current_url.should == admin_cron_jobs_url(subdomain: "myapp")
expected: "http://myapp.example.com/admin/cron_jobs"
got: "http://myapp.example.com/admins/sign_in" (using ==)
# ./spec/requests/myapp/crawler_spec.rb:30:in `block (3 levels) in <top (required)>'
Finished in 5.44 seconds
1 example, 1 failure
どんな助けでも大歓迎です..本当にありがとう