过去几年我一直在工厂的土地上,并决定回到固定装置,但遇到了问题。
在test_helper.rb
我有
class ActiveSupport::TestCase
fixtures :all
end
然后在单个测试用例中,我可能正在执行类似users(:one)
的操作,但是users(:two)
的数据和我未调用的其他表的数据似乎存在于测试数据库中。
那么,这是预期的行为吗?我很难相信它,从孤立的测试角度来看似乎很奇怪。
答案 0 :(得分:1)
这是因为您从fixtures :all
语句一次加载所有灯具。测试中的经验法则是仅加载给定测试所需的数据(不是全部)。这也可能会减慢您的测试运行时间。
如果您只想加载您可以选择的灯具
fixtures :<fixture name>
例如:
fixtures :users
还有一件事,你有没有特别的理由回到赛场。工厂是要走的路;它们允许您干净地组织测试数据。