2009-10-08 51 views
1

全部。我有一個動態夾具CSV文件,它爲表格生成可預測的數據,以便我的單元測試能夠完成它們的工作。它按預期工作,並填充表中的數據,但當我在測試運行後檢查表格時,看到許多額外的「空白」數據行(全爲零)。那些不是由夾具創建的,單元測試是隻讀的,只是做選擇,所以我不能責怪代碼。在燈具設置過程中似乎沒有任何記錄,因此我無法看到何時插入了「空白」數據。任何人都曾經遇到過這個問題,或者對如何記錄或以其他方式瞭解夾具設置在做什麼以追查空白數據來源有任何想法?Rails燈具似乎正在添加額外的意外數據

回答

0

您可以打開ActiveRecord日誌記錄(將ActiveRecord::Base.logger = Logger.new(STDOUT)放在test/test_helper.rb文件中)。或者,您可以使用像工廠(thoughtbot's factory_girl)或seed_fu(如果您有必須加載的特定數據)的更可靠的東西,而不是使用固定裝置(它已經爲大多數Rails開發人員渡過了dodo的道路),而不是使用固定裝置。

0

我發現了什麼問題,雖然不是確切的方法來防止它。我將ERB放入夾具CSV文件中,該文件工作正常,但由於它被分析和處理的方式,導致將空白行放入結果CSV輸出中。夾具似乎無法很好地處理,因此它將空行插入表格中。我無法阻止將空行放入輸出CSV,因爲無論出於何種原因,<%rubycode - %>都不起作用 - 由於關閉破折號導致ERB解析錯誤。不知道爲什麼。

在任何情況下,最終的解決方法是切換到YML而不是CSV。它容忍白色空間很好,沒有空白行被插入到表中了。另外,factory___girl似乎很有趣,但YML現在做得很好,所以它可能是矯枉過正的。我認爲使用seed_fu沒有太大好處。在這種情況下,我正在測試報告代碼,因此數據非常具體,需要以某種方式進行結構化,以驗證報告的輸出數據。

+0

ERB _side_ CSV文件?哇。 – SFEley 2009-10-08 20:39:33