PowerMock+Junit測試小記
阿新 • • 發佈:2018-03-09
Powermock Whitebox 單元測試 intelli J開發工具,單元測試,利用Powermock模擬從數據庫獲取數據,還有測試驗證私有變量的值。
-
模擬數據,因為不可能每次測試都要連接數據庫,並且準備數據也很麻煩,所以利用Powermock來模擬數據獲取,來測試程序邏輯單元的正確性。實例代碼如下:
List<_Agv> listAgvs = // 此處是從固定文件獲取數據,並返回list;
PowerMockito.when(T_Agv.getAllAgv()).thenReturn(listAgvs);// 這裏T_Agv.getAllAgv原本是從數據庫獲取數據,這裏模擬
AgvHelper agvHelper = AgvHelper.getInstance();//在getInstance函數裏用到了T_Agv.getAllAgv()函數備註:註意下,首先在測試類加上註解@RunWith(PowerMockRunner.class),另外因為模擬用到了類的靜態方法,所以在類上或者方法上加註解@PrepareForTest(T_Agv.class)
-
驗證私有變量的值
就是在你的私有變量沒有對外提供獲取接口的情況下,通過Powermock的某些方法直接獲取到私有變量,並驗證結果。
Whitebox.getField(AgvHelper.class, "agvMap").get(agvHelper);//三個參數分別是類、私有變量名、該類的對象,返回的結果是個object(如果該變量是基本數據類型,也有相應方法直接返回),然後轉換一下即可其他的Junit的一些方法就不記了,網上太多資料了,並且還是很簡單的。最主要是你自己的驗證方法和方式。另外IntelliJ有code coverage功能,可以查看自己測試的是否全面,還是很方便的。
PowerMock+Junit測試小記