在编写代码时,常常须要调用别人已经写好的工具类,而这些工具提供的方法常常是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