我們可以使用VS2010對C#中的文件I/O操作進行單元測試嗎?由於單元測試對訪問數據層沒有效率,我們是否需要進行單元測試操作或者是否存在任何模擬或假操作?我們可以對文件I/O操作進行單元測試嗎?
回答
這是什麼意思?你能否詳細說明你正在努力完成什麼?單元測試只應該測試明確定義的單元,並且責任清晰簡明,儘可能少依賴。它不應該測試任何需要引用文件系統,數據庫等的操作。使用mocks/stubs進行這樣的occassions。
這裏是嘲笑的集合: https://stackoverflow.com/questions/37359/what-c-sharp-mocking-framework-to-use
當你需要實際訪問文件系統或其他系統您在這裏談論更多的一體化測試。
當單元測試你需要嘲笑這樣的事情時,你需要使用依賴注入,例如使用unity和「模擬」文件系統。
以下是一些好的地方尋找代碼嘲笑文件系統..
http://systemwrapper.codeplex.com/
http://systemwrapper.codeplex.com/
上嘲諷一般信息。 ..
http://martinfowler.com/articles/mocksArentStubs.html#ClassicalAndMockistTesting
和下面的鏈接顯示瞭如何使用依賴注入與團結...
http://www.codeproject.com/Articles/254091/Implementing-Microsoft-Unity-Design-Pattern
親切的問候
馬修潔靈
你能寫的東西看起來像一個單元測試,將驗證文件I/O?絕對。
但你可能不應該。
你希望你的單元測試速度非常快,並且儘可能少的外部依賴。文件IO非常慢(相對而言),並且取決於一堆關於文件系統的細節。
在你的單元測試中 - 你可能只關心你的代碼成功地調用了寫操作或稱爲.Close()方法。你可以單元測試這種行爲。
如果您確實想測試您的應用程序是否與文件系統正確交互 - 您的問題就是集成測試或端到端測試;但不是單元測試。
- 1. 我可以調用嵌套函數進行單元測試嗎?
- 2. 運行VS單元測試時可以進行調試嗎?
- 3. 我可以使用單元測試工具進行集成測試嗎?
- 4. 我可以強制使用Visual Studio單元測試框架對屬性進行單元測試嗎?
- 5. 我們如何執行DOM操作的單元測試?
- 6. 我們可以爲AngularJS routeProvider編寫單元測試嗎?
- 7. 我們可以在asp.net中單元測試global.asax嗎?
- 8. 我們可以通過Apache Jmeter進行ESB測試嗎?
- 9. 我們可以使用java.util.Date進行sql或oracle操作嗎?
- 10. 爲單元測試操作app.config文件
- 11. 如何爲IO文件創建存根以在Java中進行單元測試?
- 12. 如何對涉及IO的c函數進行單元測試?
- 13. 我們可以對數據服務執行任何操作嗎
- 14. 我們可以在maven構建過程中對java進行bash測試嗎?
- 15. 我們可以使用JQuery UI對話框進行復雜的操作嗎?
- 16. 我可以將多個BOOST單元測試鏈接到單個測試二進制文件中嗎?
- 17. 我們可以使用nlmrt軟件包進行nlxb預測嗎?
- 18. 我可以使用機架測試進行部署測試嗎?
- 19. 我可以單元測試Informatica Powercentre工作流程嗎?
- 20. 是否可以在CodeIgniter中對View進行單元測試?
- 21. 是否可以對Cognos進行自動化單元測試?
- 22. 我們可以在smooks中進行字符串操作和條件檢查嗎?
- 23. 我如何可以對我的實體環境進行單元測試
- 24. 我可以使用cxxtest與visual studio 2010 professional進行單元測試嗎?
- 25. 單元測試操作類
- 26. 多個操作系統單元在一個文件中測試 - 可能嗎?
- 27. 單元測試,重構,IO
- 28. 重寫單元測試可以嗎?
- 29. 可以在Hibernate Grails的條件查詢進行單元測試?
- 30. 可以單元測試一個C++ obj文件嗎?