我是 Rails 新手,所以可能我错过了一些明显的东西......我正在尝试编写一个使用 Mongodb 和 Mongoid gem 的 Rails 应用程序。
我在测试时遇到了一些麻烦。我想检查从 db 内容生成的 html 表是否正确。
我正在使用 Fabrication 在测试数据库中生成数据。
我的问题是生成的数据不可用于测试。为了使测试正确失败/通过,我必须运行它两次并避免清空集合。但这会给其他测试带来麻烦。
规格:需要'spec_helper'
describe "OperatorsPages" do
let(:operator) { Fabricate(:operator) }
subject { page }
before do
sign_in_operator operator
end
describe "index page " do
before(:all) do
3.times { Fabricate(:operator) }
visit operators_path
end
after(:all) do
Operator.all.destroy
end
Operator.all.each do |operator|
it { should have_selector 'td', text: operator.name }
it { should have_selector 'td', text: operator.email }
end
end
end
如果测试针对空 db Operators.all.each.to_a 运行,则不会检查循环内的断言。如果我第二次运行它,则循环工作,但(显然)只有当我删除 after(:all) 过滤器时
如何让这个测试在第一次正确运行并在之后留下一个空集合?