Dot-Net
模擬文件系統
如果我的單元測試依賴於文件系統並且我需要模擬它,那麼最好的方法是什麼?
謝謝
您基本上有兩個選擇:eiter 將所有與文件系統相關的邏輯抽象為 a
IFileSystemService,或者使用Microsoft 的Stubs,即…提供測試存根的 .NET 輕量級框架。對於介面和非密封類,會生成類型安全的包裝器,可以通過附加委託輕鬆定制。
文件系統是 TDD 如何推動您實現更好、更靈活的設計的一個很好的例子。通常,當您與文件系統互動時,您可以使用Streams或TextWriters而不是實際文件來處理讀取和寫入文件。
這些都是抽像類型,因此很容易模擬。
現在你有了一個更靈活的 API,因為它沒有與文件系統緊密耦合,但仍然支持文件操作。