我正在培訓TDD方法,但是我遇到了問題。如何測試IO操作?到目前爲止,我使用的是junit,但是我讀到它不應該用於測試外部源(數據庫,文件...),那麼什麼會更好?對不起,我的英文不好Java,tdd方法,IO操作
0
A
回答
1
你不能測試這些外部源的內部工作,但你可以檢查結果。
例如,寫入文件:如果數據相同
開始測試你想在一個變量
寫入數據寫入文件
讀取文件
檢查
存儲數據你存儲在一個
結束測試
測試是有關驗證的最終結果,所以你「失去」了一部分過程並不一定是壞事。通常你可以假設外部資源(庫,IO ..)已經過很好的測試。
1
更改您的API以通過InputStream
和/或OutputStream
並讓您的jUnit代碼通過ByteArrayInputStream和ByteArrayOutputStream
,您可以輕鬆地設置/讀取該代碼。
當然你的生產代碼需要改變,但你通常可以通過簡單的重構實現這一點;離開API原樣但具有公有方法調用重構的方法,例如:
變化
public void read(File file) {
// do something with contents of file
}
要
public void read(File file) {
read(new FileInputStream(file));
}
// test this method
public void read(InputStream inputStream) {
// do something with contents of inputStream
}
相關問題
- 1. 同步java中的字符串方法參數的io操作?
- 2. Amazon EC2 IO操作
- 3. 處理IO操作
- 4. IO操作與Task.Run
- 5. 使用Apache IO的多線程副本IO操作Java
- 6. MVC Viewmodel TDD方法
- 7. WCF異步操作+ IO操作
- 8. 使用IO()操作,但返回IO X
- 9. IO操作中的超時
- 10. Telnet基本IO操作
- 11. Apple Swift文件IO操作
- 12. Haskell和低級IO操作
- 13. 循環內IO操作
- 14. 管道中的IO操作?
- 15. 試圖處理IO操作
- 16. Linux IO操作符'>'
- 17. IO方法塊:
- 18. Java方法操作數堆棧
- 19. 使用TDD/BDD開發操作系統
- 20. TDD:「僅測試」方法
- 21. io作業操作員沒有評估?
- 22. 在操作方法
- 23. UISwitch操作方法
- 24. LinkedStack操作方法
- 25. 操作方法:ASP.NET
- 26. 將Java NIO與IO輸入流混合使用讀取操作
- 27. 互操作性與Java弗雷格,尤其是在IO Monad的
- 28. 需要TDD方法的想法
- 29. 調用其他方法的TDD方法的正確方法
- 30. 嘲笑IO操作:getArgs和putStrLn
1。從測試代碼jar文件加載數據的ByteArrayInputStream或TestClass.getResourceAsStream(「somefile.dat」)。 – Thilo