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,没有对 capybara、rspec 等测试库的版本控制。

非常感谢任何输入!谢谢!

4

1 回答 1

-1

似乎您遇到了与此相同的问题: Capybara with :js => true 导致测试失败

尝试将 DatabaseCleaner 策略设置为 :truncation 并查看它是否有效

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