簡體   English   中英

測試讀寫文件系統的類時的單元測試最佳實踐

[英]Unit test best practice when testing class that reads and writes to the filesystem

我有一個類在磁盤上對文件進行操作。 更確切地說,它遍歷一個目錄,讀取具有給定后綴的所有文件,並對數據執行一些操作,然后將它們輸出到新文件。

關於如何為這門課程設計單元測試,我有點懷疑。 我想安裝方法在/ tmp / somefolder中創建臨時目錄和臨時文件,但我懷疑這是一個壞主意,原因有兩個(開發人員使用Windows,文件權限等)。

另一個想法是模擬我用來編寫和讀取磁盤的類,通過使用接口封裝類然后提供模擬對象,但它似乎有點亂。

處理這樣一個問題的標准方法是什么?

如果使用JUnit 4.7及更高版本,則可以使用@TemporaryFolder規則透明地獲取臨時文件夾,該文件夾應在每次測試后自動清除。

你的策略是正確的,IMO。 請確保不要對臨時目錄進行硬編碼。 使用System.getProperty("java.io.tmpdir")獲取臨時目錄的路徑,並在測試完成后使用測試中的finally塊或@After方法清理創建的文件和目錄。

嘲笑一切都是可能的,但可能比它的價值更多的努力。 您可以使用Java System.getProperty(“java.io.tmpdir”)提供的臨時目錄,無論您使用哪個系統,都應該能夠寫入該目錄。 堅持使用短文件名,即使在古老的東西上運行也是安全的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM