【发布时间】:2014-01-23 17:10:01
【问题描述】:
我在 FactoryGirl 中看到了一些似乎与文档相矛盾的奇怪行为。在 Rspec 测试中,如果我这样做;
static_groups = FactoryGirl.create_list(:static_group,5)
expect(StaticGroup.count).to eq(5)
测试失败(预期:5,得到:0)。如果我添加显式保存的记录;
static_groups = FactoryGirl.create_list(:static_group,5)
static_groups.each do |grp|
grp.save
end
expect(StaticGroup.count).to eq(5)
测试通过了!我认为 factorygirl 中的“创建”应该为您保存,但在这种情况下,它显然不是保存可以在之后立即保存的记录!更奇怪的是,如果我在第一个示例中询问对象(我没有进行显式保存),它们都有 id,所以它们肯定一直在与数据库对话!
编辑
在有人指出狡猾的“计数”语法之前,我使用 DataMapper 作为 ORM,这是一种有效的计数方式 :)
【问题讨论】:
-
你能显示
static_groupfactory的定义吗? -
test.log 中是否正在生成数据库插入?
-
谢谢你们提示我仔细检查工厂 - 发现问题 facepalm
标签: ruby-on-rails rspec factory-bot