PowerMock | 您所在的位置:网站首页 › powermock静态方法抛出异常 › PowerMock |
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 实验室设备网 版权所有 |