给定以下简单规范:
require 'spec_helper'
feature 'Feeds', %q{
In order see the latest content of Buurtlink
As a user
I should be able to view a neighborhood or postal_code
} do
background do
@neighborhood = FactoryGirl.create(:neighborhood_with_posts)
end
scenario 'Visitor views a neighborhood' do
visit neighborhood_path(@neighborhood)
find('#header_title').should have_content 'Diemen-Zuid'
10.times do |index|
expect(page).to have_text "Title of new post #{index}"
end
end
end
这个测试随机失败。页面上没有使用js,但在factorygirl创建完所有必需的帖子之前,capybara似乎访问了邻居路径。当使用save_和_open_页面查看页面时,我可以看到,有时还没有创建所有的帖子。
只需在访问邻里路径上添加sleep 1就可以解决问题,但这不是一个解决方案。
我用的是RSpec,水豚,Spork和数据库清洁剂我还对ActiveRecord进行了monkey补丁,以便它使用共享连接。
最佳答案
请尝试此操作,而不要使用背景块:
let!(:neighborhood){FactoryGirl.create(:neighborhood_with_posts)}
你能做到的
visit neighborhood_path(neighborhood)
关于ruby-on-rails - capybara 不等待factory_girl完成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18255354/