在編寫代碼時,常常須要調用別人已經寫好的工具類,而這些工具提供的方法常常是static方法,在這裏,直接貼出《PowerMock實戰手冊》中的例子工具
待測試方法:測試
public class EmployeeService { public int getEmployeeCountWithStatic() { return EmployeeUtils.getEmployeeCount(); } }
引用的工具類spa
public class EmployeeUtils { public static int getEmployeeCount() { throw new UnsupportedOperationException(); } }
測試方法:code
@PrepareForTest(EmployeeUtils.class) public class EmployeeServiceTestWithStaticTest extends PowerMockTestCase{ private EmployeeService employeeService; @ObjectFactory public ITestObjectFactory getObjectFactory() { return new PowerMockObjectFactory(); } @BeforeMethod public void init(){ employeeService = new EmployeeService(); } @Test public void testGetEmployeeCountWithStatic() { PowerMockito.mockStatic(EmployeeUtils.class); PowerMockito.when(EmployeeUtils.getEmployeeCount()).thenReturn(10); int count = employeeService.getEmployeeCountWithStatic(); Assert.assertEquals(10, count); } }
重點是blog
PowerMockito.mockStatic(EmployeeUtils.class);get
mock類EmployeeUtils中的全部static方法it