Rails夹具转储数据库中的所有数据

时间:2013-04-17 04:38:00

标签: ruby-on-rails activerecord

过去几年我一直在工厂的土地上,并决定回到固定装置,但遇到了问题。

test_helper.rb我有

class ActiveSupport::TestCase
  fixtures :all
end

然后在单个测试用例中,我可能正在执行类似users(:one)的操作,但是users(:two)的数据和我未调用的其他表的数据似乎存在于测试数据库中。

那么,这是预期的行为吗?我很难相信它,从孤立的测试角度来看似乎很奇怪。

1 个答案:

答案 0 :(得分:1)

这是因为您从fixtures :all语句一次加载所有灯具。测试中的经验法则是仅加载给定测试所需的数据(不是全部)。这也可能会减慢您的测试运行时间。

如果您只想加载您可以选择的灯具

fixtures :<fixture name>

例如:

fixtures :users

Read more about fixtures

还有一件事,你有没有特别的理由回到赛场。工厂是要走的路;它们允许您干净地组织测试数据。

Read more about factories