我使用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