【问题标题】:Issue with Capybara request specs with JS - can't find the modelCapybara 请求规范与 JS 的问题 - 找不到模型
【发布时间】:2012-05-28 08:40:29
【问题描述】:

我遇到了 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 等测试库的版本控制。

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

【问题讨论】:

  • 如果你删除 js:true 会发生什么?

标签: ruby-on-rails capybara capybara-webkit


【解决方案1】:

好像你有同样的问题: Capybara with :js => true causes test to fail

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

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

【讨论】:

    猜你喜欢
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多