最近公司在使用powermockito進行白盒測試,在這一方面因為剛接觸,避免不了要遇到一些坑(問題),這篇文章主要是記錄下自己遇到的問題,以便后面可以查閱。
1、使用Powermockito檢查某個靜態方法調用的次數
1 PowerMockito.mockStatic(Static.class); 2 // use Mockito to set up your expectation 3 PowerMockito.when(Static.staticMethod(Mockito.anyString())).thenReturn("hello iWuYc"); 4 Static.staticMethod("iWuYc"); 5 Static.staticMethod("iWuYc"); 6 // Different from Mockito, always use PowerMockito.verifyStatic() first 7 // to start verifying behavior 8 PowerMockito.verifyStatic(Mockito.times(2)); 9 // IMPORTANT: Call the static method you want to verify 10 Static.staticMethod("iWuYc");
步驟:
- 記錄需要mockito的靜態類的靜態方法
- 調用對應的靜態方法,在代碼中可以看到,4~5行調用了兩次staticMethod方法
- 啟用校驗(代碼中第8行)
- 再次調用需要校驗的方法,進行實際的檢查,看看是否符合第8行定義的規則。
注意:
在使用過程中,沒有仔細看api文檔,導致本人在使用中一直遇到問題。關鍵點是:先調用對應的靜態方法,再啟用靜態檢查,並定義規則,再次調用對應的靜態方法,查看是否是通過校驗的。
如果在第8行定義的times是3的話,這個時候,第10行調用會報錯。