用PowerMock mock static方法

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

相关文章
相关标签/搜索