我正在生成一些.csv文件,我需要在Zip文件中壓縮這些文件。好吧,我有一個框架來做到這一點,可能一切都會好起來的。使用c#計算Zip文件中的文件數
但是!正如TDD所說的,在我進行一些測試之後,我可以編寫代碼!
我的第一個測試聽起來很簡單,但是我在閱讀Zip文件時遇到一些問題,任何人都知道一個簡單的方法來計算我的zip文件中的文件數量?
我正在生成一些.csv文件,我需要在Zip文件中壓縮這些文件。好吧,我有一個框架來做到這一點,可能一切都會好起來的。使用c#計算Zip文件中的文件數
但是!正如TDD所說的,在我進行一些測試之後,我可以編寫代碼!
我的第一個測試聽起來很簡單,但是我在閱讀Zip文件時遇到一些問題,任何人都知道一個簡單的方法來計算我的zip文件中的文件數量?
我不認爲這是你問一個TDD的問題,但無論如何,我會回答。
[Test] public void countsNumberOfFilesInZip() { var counter = new FileCounter("existing_archive_with_2_files.zip"); AssertEqual(2, counter.count()); }
現在,使用您選擇的庫,使FileCounter
工作。一旦它有效並且你有一個通過測試,如果你願意的話,重構代碼,以便它使用一個模擬框架來模擬對zip庫的調用。現在,您不需要依賴文件系統。 (我可能不會走這麼遠,除非你的測試由於磁盤I/O而變得太慢)
謝謝@bcarlso!我理解I/O的問題,但在這種情況下,我真的想要一些將文件保存在磁盤中的集成測試。我只是使用模擬從數據庫中帶出假數據。 – Custodio
咦?你在問什麼? – SLaks
你說你有一個框架,我認爲這意味着一個zip庫,允許你創建zip文件。這是否也不讀取zip文件?如果是這樣,那麼你應該能夠加載壓縮文件,然後直接得到一個計數,或者可能必須遍歷虛擬目錄結構來獲得計數(如果有的話)。這取決於你的圖書館的實施。如果你還沒有圖書館,那麼下面的其他人會爲你指定一些圖書館。 :) – Chris
尼斯克里斯!我的圖書館是一些遺留代碼,但最初我會繼續在主項目中使用她。但在我的測試項目中,我想確認我的代碼完全符合我的要求。我正在使用DotNetZip,很快我會發布我的代碼。 – Custodio