PowerMock 您所在的位置:网站首页 powermock静态方法抛出异常 PowerMock

PowerMock

2023-09-19 14:26| 来源: 网络整理| 查看: 265

1 PowerMock静态方法

写单元测试时,经常会遇到测试方法体内调用了某些工具类的静态方法的情况,而这些静态方法一般是读取配置中心里的文件数据,或者是一些其他涉及到需要启动项目的操作(往往这些操作会造成Mock单元测试的不彻底,有些流水线扫描工具可能会认定单元测试没有覆盖的情况)。因此,需要将一些静态方法mock掉,只要调用了该静态方法,就返回我们预设好的一些值。

2 PowerMock使用的前提条件 org.powermock powermock-api-mockito2 org.powermock powermock-module-junit4 3 创建单元测试类

几点注意: 1 @PrepareForTest注解和@RunWith注解是结合使用的, 2 不要单独使用它们中的任何一个,否则不起作用。 3 将需要mock的静态方法类名写在这里,如有多个,以逗号分割

mock后,调用该静态方法,传入任何String类型,都会返回 “成功” 假设有一个类ATest的getObect()方法中调用StaticFunctionTest1中的静态方法getValue(String para),那么现在mock后,就会返回固定值 “成功”

@RunWith(PowerMockRunner.class) @PowerMockIgnore({"javax.script.*", "javax.management.*", "org.w3c.dom.*", "org.apache.log4j.*", "org.xml.sax.*", "javax.xml.*"}) @PrepareForTest({StaticFunctionTest1.class,StaticFunctionTest2.class}) // public class UnitTest { @Test public void Test1(){ PowerMockito.mockStatic(StaticFunctionTest1.class); PowerMockito.when(StaticFunctionTest1.getValue(Mockito.anyString())).thenReturn("成功"); ATest test = new ATest(); test.getObect(); }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有