使用powermock 测试static 方法,jacoco统计覆盖率问题

使用powermock 对private 和static 方法进行mock 测试,

public class LogUtil {
      public static BaseAuditLog getLogBean(String operContent){
        return null;       
    }
     
     public static void  saveLog(String context){
         
     }

mock 使用:

@RunWith(PowerMockRunner.class)  //1.
@PrepareForTest({LogUtil.class}) //2.
public class AddressBookServiceTest_mock {
 
 
    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
    }
   @Test
    public void test_staticMethod_PowerMock()  {
        //绕过静态类
        PowerMockito.mockStatic(LogUtil.class);//3.绕过静态类
        when(LogUtil.getLogBean(json)).thenReturn(new SensitiveInfoOperationLog());//4.预设静态类返回值
        String response = addressBookServiceImpl.queryAddressBookFuzzy(json);
    }
}

但是surefire具体执行,并且jacoco 收集覆盖率的时候:


surefire正常拉起执行,但是没有具体覆盖率信息,也就是jacoco 对static和private做字节码植入的时候有问题,jacoco有两种执行方式,jacoco 在线方式统计(字节码植入)有问题;修改离线方式,才能正常收集覆盖率.


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值