用PowerMock mock static方法

摘要:
编写代码时,通常需要调用其他人编写的工具类,这些工具提供的方法通常是静态方法。在这里,您可以直接在PowerMock实践手册中发布要测试的示例方法:publicclassEmployeeService{publicintgetEmployeeCountWithStatic(){returnEmployeeUtils.getEmploloyeeCount();}}引用的工具类publiccla

在编写代码时,经常需要调用别人已经写好的工具类,而这些工具提供的方法经常是static方法,在这里,直接贴出《PowerMock实战手册》中的例子

待测试方法:

public class EmployeeService {
    public int getEmployeeCountWithStatic() {
        return EmployeeUtils.getEmployeeCount();
    }
}

引用的工具类

public class EmployeeUtils {
    public static int getEmployeeCount() {
        throw new UnsupportedOperationException();
    }
}

测试方法:

@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);
    }
}

重点是

PowerMockito.mockStatic(EmployeeUtils.class);

mock类EmployeeUtils中的所有static方法

免责声明:文章转载自《用PowerMock mock static方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C++11 并发指南四(<future> 详解二 std::packaged_task 介绍)canvas图片问题和移动端iOS系统onload事件失效的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java单元测试 Http Server Mock框架选型

背景动机 某期优化需要针对通用的HttpClient封装组件--HttpExecutor在保证上层暴露API不动的前提做较多改动,大致包括以下几点: apache http client 版本升级 HttpClientBuilder代码重构 RequestBuilder代码重构 自定义RetryHandler HttpContext扩展 自定义HttpR...

PowerMock学习(三)之Mock局部变量

编写powermock用例步骤: 类上面先写这两个注解@RunWith(PowerMockRunner.class)、@PrepareForTest(StudentService.class) 先模拟一个假对象即studentdao方法中的局部变量 用无参的方式new对象 再模拟这个对象被调用时,是否有返回,有返回值给出默认值,没有用doNothing(...