Capybara 请求规范与 JS 的问题 - 找不到模型
Posted
技术标签:
【中文标题】Capybara 请求规范与 JS 的问题 - 找不到模型【英文标题】:Issue with Capybara request specs with JS - can't find the model 【发布时间】: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 会发生什么? 【参考方案1】:好像你有同样的问题: Capybara with :js => true causes test to fail
尝试将 DatabaseCleaner 策略设置为 :truncation 看看是否有效
config.before(:suite) do
DatabaseCleaner.strategy = :truncation
end
【讨论】:
以上是关于Capybara 请求规范与 JS 的问题 - 找不到模型的主要内容,如果未能解决你的问题,请参考以下文章
在 RSpec 请求规范中使用 Capybara 时设置自定义请求标头的最佳方法是啥?
Capybara-Webkit:缺少 js/React 并且找不到变量:WeakMap
更新到 Capybara 2.1.0.rc,现在我的功能规范中的 current_path 有问题
Capybara-webkit、rspec 集成规范和 xvfb:webkit_server:致命 IO 错误:客户端被杀死