3

JS リクエスト仕様に問題があります - モデル編集ページの基本的な訪問:

it "can edit a doc", :js => true do
  doc = FactoryGirl.create(:doc) # tried with Doc.create as well
  puts Doc.find(doc.id) # 1 <- so it's definitely in the DB!
  visit edit_doc_path(doc) 
end

結果: 「ActiveRecord::RecordNotFound - ID=1 のドキュメントが見つかりませんでした」

奇妙なことに、標準のリクエスト仕様で動作します。Webkit ドライバーと Selenium ドライバーの両方を試しました。私の spec_helper は次のようになります (かなり標準的なはずです):

RSpec.configure do |config|
  config.use_transactional_fixtures = false

  Capybara.javascript_driver = :webkit

  config.before(:suite) do
    DatabaseCleaner.strategy = :transaction
  end

  config.before(:each) do
    DatabaseCleaner.start
  end

  config.after(:each) do
    DatabaseCleaner.clean
  end

  config.before(:each, :type => :request) do
    Capybara.reset_sessions!
  end
end

Rails 3.1.4、カピバラ、rspec などのテスト ライブラリのバージョン管理なし。

任意の入力をいただければ幸いです。ありがとう!

4

1 に答える 1

-1

これと同じ問題があるようです ::js => trueのCapybaraは、テストを失敗させます

DatabaseCleaner戦略を:truncationに設定して、機能するかどうかを確認してください

config.before(:suite) do
  DatabaseCleaner.strategy = :truncation
end
于 2012-05-22T00:01:23.480 に答える