假設您需要使用一個不必要的複雜,難以模擬(也許它具有沒有虛擬接口的具體類),以及不可靠的第三方庫,它與一些外部資源套接字或數據庫。您決定創建「包裝器」接口/類來大大簡化該庫的使用,並允許使用包裝器的開發人員繼續編寫可測試的代碼。包裝界面看起來沒有像原始界面。測試第三方庫的智能包裝
我有幾個關於如何測試這個包裝的問題。
包裝是否應該在沒有外部資源的情況下通過開發一個可以被模擬的不良庫的方法層方法來測試?
當您使用第三方庫(使用外部資源)測試包裝類時,這是單元測試還是集成測試?如果在自動化測試期間外部資源可以嵌入到內存中,它仍然是一個集成測試嗎?
在什麼時候我們放棄嘲笑和剔骨,並說我們有一個單位。根據wikipedia「一個單位是應用程序中最小的可測試部分」。但我覺得這很難衡量。如果速度是決定我們是否正在測試一個單元的一個因素,那麼如何判斷測試被稱爲單元測試的速度有多慢?
+1我想,如果包裝/門面最終被不僅僅是方法委託,它可能足夠複雜,足以證明創建1:1「啞」包裝來隔離邏輯的時間是合理的。非常好的一點。 – insipid 2011-05-09 13:25:29