我正在使用 seed.rb 来填充一些状态模型参考数据:
State.create :name => 'Alabama', :abbreviation => 'AL'
State.create :name => 'Alaska', :abbreviation => 'AK'
# ...
虽然我没有使用状态装置(因为它是种子数据开始,我认为纯粹为了测试而必须复制它并不是 DRY),Rails 测试框架似乎在测试期间删除了所有状态种子数据。(我正在删除、重新创建、迁移和重新播种测试数据库,并在单元测试运行之前确认数据存在。)
结果是这个断言在 seed.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 从种子数据中解放出来?我是否需要复制夹具中的所有数据以确保重新加载?在没有重大政治事件的情况下,我预计州数据将相对稳定。
蒂亚