我最近在我的应用程序中开始使用FactoryGirl而不是Fixtures。 下面是我编写的一个规范,用于测试使用factorygirl保存的数据是否出现在单独的页面中
describe "Tasks" do
describe "GET /Ajax add", :focus do
it "checks ajax js", :js => true do
task = FactoryGirl.create(:task, :name => "writing test task")
visit "/list"
end
end
end
页面/list
中的我已编写代码来检索tasks
表(Task model)
中的所有数据。
当我通过启动服务器运行页面时,我可以看到输出,但是在运行测试时,它总是显示空页。
这是因为FactoryGirl在使用后删除了所有数据吗?或者,即使我在测试中访问多个页面,我该怎么做才能保留数据?
答案 0 :(得分:1)
1)您使用的是DatabaseCleaner吗?看看你的test_helper,看看你是否在做任何清理数据库的事情
2)检查任务的返回值,看它是否实际成功创建。
答案 1 :(得分:0)
我有类似的问题,使用Fabricator(FactoryGirl替代品)不会持续到我的Capybara会话。 plataformatec的人为此写了一个解决方案。 http://blog.plataformatec.com.br/2011/12/three-tips-to-improve-the-performance-of-your-test-suite/