Rails灯具与种子

use*_*651 18 ruby-on-rails fixtures

我正在学习Ruby on Rails,我想确保我理解灯具和种子数据之间的区别.

我理解的是,fixtures基本上是测试数据,你运行你的测试断言,并且一旦你的测试完成就没有持久性,而种子你在做类似事情时自动放入数据库rake db:seed.

为什么在这种情况下使用种子?只是为了避免写出所有无数的测试断言?对于您知道在应用程序投入生产时需要在数据库中的数据?

(我想,静态数据总是像消息板上的第一个管理员那样?)

Naf*_*fer 13

你做对了.种子数据是使用允许应用程序从一开始就可用的必备数据填充数据库,比如添加一个默认的管理员帐户,该帐户是应用程序从一开始就可以管理的.

种子数据不应该用于测试目的,在测试时你应该始终确保数据库是干净的,这样你才能知道一个例子使用的唯一数据是由示例填充的数据,而不是来自任何外部的数据,这允许避免混淆.

固定装置是这样做的一种方式.但更好的方法是使用像工厂女孩这样的工厂,检查这个轨道播报节目以获得更好的解释.

  • 一个很好的答案,但我不会这么快就打折固定装置。最新版本运行良好。首先尝试固定装置。如果他们不做你想做的事,那就寻找替代品,比如工厂女孩。 (2认同)

Dog*_*her 6

许多应用程序需要一些数据才能正常运行.例如,国家/地区和邮政编码列表.或者,即使数据库中还没有用户,用户可以承担的潜在角色列表.

根据启动和运行开发环境所需的内容来考虑种子数据.通常,对于一个新的Rails开发人员来处理任何应用程序,该过程应始终如下所示:

  1. 克隆回购
  2. 通过bundler安装gem
  3. 创建开发和测试数据库为其设定种子
  4. 运行应该通过的测试

  • 不要为测试数据库设定种子. (2认同)