如何分离测试和种子数据?

时间:2013-12-17 18:09:45

标签: ruby-on-rails tdd automated-tests

由我来编写自己的系统,使用第三方解决方案,还是Rails提供了一种将我的测试数据与种子数据分开的方法?

我知道seeds.rb,它就像一个普通的ruby文件。我想将种子/夹具数据存储在yaml或json之类的东西中,但也要将我的测试数据随机生成或在与种子数据分开的某个地方生成(失败)。

1 个答案:

答案 0 :(得分:0)

如果要为数据库定义单独的种子文件,请查看此link

我认为你真正想要的是fixtures或工厂,例如FactoryGirl宝石。

工厂和工具允许您定义独立于数据库状态并为测试而设计的样本模型数据。

例如,如果您想要一个fixture来帮助您测试User模型的验证,那么您可以拥有以下users.yml文件

bob:
  name: bob
  birthday: 1989-11-12

然后,在您的测试中,您可以使用夹具:

test "should validate with name" do
  bob = users(:bob)
  assert bob.valid?
end