軟件測試之單元測試技能篇[1] 單元測試方法
節是單元測試系列的第二篇。重點講解如何使用Mock/Stub和依賴注入技術進行單元測試。關于工具JUnit等則不做累贅介紹。 希望通過本章能夠幫助大家開始單元測試的有益實踐,與大家共勉!
單元測試(技能篇)
一、Stub技術
這是最為古老的一種測試技能。通過類層次上的替換實現了對待測環境的模擬。
實現的時候有兩種途徑:
1、重寫實際類,在測試時,先于實際類加載,即覆蓋。如:我們在unittest/stub文件夾下針對于每一個重寫類都有相同的包結構和類名:
在類路徑中優先加載:
2、在實際代碼中添加判斷。比如,如果當前是測試環境if(isUT)執行XX操作,截斷真正需要做的事。
publicvoid sendCommand(int cmdCode)
{
if(isUT())
{
//...
}
else
{
//...
}
}
Stub技術的問題就在于我們在重寫這些類的時候,不僅僅要關注接口,還要關注其內部邏輯。如果你只是簡單的返回一個固定的響應,會很簡單。但是對于每一次運行需要根據不同的輸入返回不同的輸出時方法內部的處理就會復雜的多。軟件測試
由于實現的難度,所以,使用時就要注意:有高價值、重用度高、數量少。這就是說,重寫一個類,就可以有一大批類可以用。