2

在更新生产之前,我需要确保使用种子执行的所有操作都正常工作。

你如何用 RSpec 测试 seed.rb?

4

1 回答 1

0

种子旨在首先在空数据库上运行,以正确提供正确的状态。如果该初始状态需要更改(例如域表),您必须相应地调整种子,以便它可以添加不存在的元素或更改现有元素。实现此目的的一个好方法是执行以下操作:

admin = Operator.find_or_create_by_login!(:admin) do |adm|
  adm.name = 'admin'
  adm.is_administrator = true
end

在运行测试之前,我们还加载了种子,因此很容易创建一个规范来验证所需的数据是否存在(以防您不信任它)。

如果您需要操作现有数据,首选方法是使用迁移。我通常不会为迁移编写规范,而是在我的开发数据库和我的生产数据库的副本上测试它们(在实际生产之上运行它之前)。

希望这可以帮助。

于 2011-11-02T19:59:21.273 回答