2011-12-20 52 views
0

我正在生成一個包含多行和多列的CSV文件。測試CSV - 我應該走多遠?

但是,當我測試所說的CSV時,我覺得我只是重複構建測試中的文件的代碼,因爲我正在檢查每個字段是否正確。

問題是,這比我看起來更明智嗎,還是有更好的辦法?

+0

您是在測試中建立預期的字符串還是簡單地陳述它們'string expected =「c,s,v」;​​'? – StuperUser 2011-12-20 13:16:37

+0

你能舉一個測試的例子嗎? – 2011-12-20 13:19:13

+0

你是什麼「生成CSV」?從基地讀取,使用API​​構建的對象等...?如果是這樣,那麼一個測試,建立到您的「CSV生成器」的輸入,獲得輸出,並將其與一個硬編寫的,預期的CSV文件進行比較似乎對我而言更爲明智。 – phtrivier 2011-12-21 10:05:31

回答

0

一個更簡單的測試就是將CSV導入電子表格或數據庫,並驗證數據輸出是否與適當的字段對齊。沒有額外的列或額外的行,從導入的記錄集中選擇的數據與生成CSV的記錄集等是完美的INTERSECT。

更重要的是,我建議確保您的測試數據包含常見的CSV失敗場景,例如:

  • 字段包含逗號(或任何你的分隔符)
  • 字段包含多個逗號(你可能會認爲這是同樣的事情,但我已經看到了一個失敗在其他成功)
  • 場包含新行字符
  • 字段包含不在CSV文件的代碼頁中的字符

...確保您的代碼正確處理它們。

+0

你說的是看實際的文件嗎?我正在編寫自動化的測試。 – 2011-12-20 14:19:24

+0

不,我的意思是使用一個自動化過程,將CSV文件導入SQL數據庫,然後使用查詢來計算行數,計算列數,對原始記錄集執行INTERSECT查詢等。我所說的一切都可以自動化。僅僅因爲我是一個數據庫人員,並不意味着我不瞭解測試驅動開發。 ;-) – 2011-12-20 14:23:55