我使用seeds.rb填充某些国家模型参考数据:防止Rails的测试
State.create :name => 'Alabama', :abbreviation => 'AL'
State.create :name => 'Alaska', :abbreviation => 'AK'
# ...
虽然我不使用状态固定装置(因为它的种子数据,首先,我认为这不需要DRY来完全复制这个测试),Rails测试框架似乎在测试过程中删除了所有状态种子数据。 (我正在删除,重新创建,迁移和重新生成测试数据库,并且确认数据在单元测试运行之前已经存在。)
结果是此断言在seeds.rb中成功,但在单行测试中失败:
assert_equal 51, State.all.size
1) Failure:
test_state_seeds_are_present(StateTest) [/test/unit/state_test.rb:24]:
<51> expected but was
<0>.
1 tests, 1 assertions, 1 failures, 0 errors
我试图在基础测试类灯具声明都明确列出非国家模型,以及翻转事务灯具标志(如预期,这只会影响在测试过程中创建的记录)。自然,考虑中的测试本身并不会删除这些记录。
状态记录总是被删除。有没有办法告诉Rails从种子数据中脱颖而出?我是否需要复制装置中的所有数据以确保重新装载?由于没有发生重大政治事件,我预计国家数据会相对稳定。
TIA
谢谢你们,我会尽量都卢克的(一次性)和weppos'(在设置)建议为明确加载种子测试中的数据并查看哪一个最适合我的目的。我会把它看作是一个测试只会首先核实数据库数据。 – aaron