因powermock的@PrepareForTest()注解中的Javassist与jacoco的覆盖检测机制相冲突,所以会出现覆盖率始终为0的情况。所以需要mock静态方法时,可以采用mockito3.4.0(3.4.0以上都可以)搭配jacoco进行ut测试。下面的示例仅供参考:

@RunWith(MockitoJUnitRunner.class)
public class IpUtilsTest
{//带参数且有特殊返回值的的静态方法@Testpublic void test3() throws UnknownHostException{try(MockedStatic<StringUtils> mockedStatic = Mockito.mockStatic(StringUtils.class)){OngoingStubbing<Boolean> stubbing = mockedStatic.when(()->StringUtils.isNotBlank(ArgumentMatchers.any()));stubbing.thenReturn(true);String res = IpUtils.getHostAddress();Assert.assertNull(res);}}//带参数的静态方法@Testpublic void queryTest_1() throws Exception{try(MockedStatic<RestResponse> mockedStatic = Mockito.mockStatic(RestResponse.class)){mockedStatic.when(()->RestResponse.err(anyInt(), anyString())).thenReturn(response);PowerMockito.when(backupConfigService.getByDbType(Mockito.anyInt())).thenThrow(new BadSqlGrammarException("", "", new SQLException()));resource.query(1);}}
}
@RunWith(MockitoJUnitRunner.class)
public class IpUtilsTest
{//不带参数的静态方法@Testpublic void test() throws UnknownHostException{try(MockedStatic<InetAddress> mockedStatic = Mockito.mockStatic(InetAddress.class)){mockedStatic.when(InetAddress::getLocalHost).thenThrow(UnknownHostException.class);String res = IpUtils.getHostAddress();Assert.assertNotNull(res);}}@Testpublic void test12() throws UnknownHostException{try(MockedStatic<SrvpIpUtils> mockedStatic = Mockito.mockStatic(SrvpIpUtils.class)){mockedStatic.when(SrvpIpUtils::getNetApiIp).thenReturn("111.111.111.111");String res = IpUtils.getHostAddress();assertEquals("111.111.111.111",res);}}
}
<dependency><groupId>org.mockito</groupId><artifactId>mockito-core</artifactId><version>3.8.0</version><scope>test</scope>
</dependency>
<dependency><groupId>org.mockito</groupId><artifactId>mockito-inline</artifactId><version>3.8.0</version><scope>test</scope>
</dependency>

Java之ut,mock与jacoco相关推荐

  1. Java单元测试(Junit+Mock+代码覆盖率)

    单元测试是编写测试代码,用来检测特定的.明确的.细颗粒的功能.单元测试并不一定保证程序功能是正确的,更不保证整体业务是准备的. 单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复.改进 ...

  2. java单元测试之mock篇

    java单元测试之mock篇 一.什么是mock? 二.为什么要进行mock? 三.IDEA中使用Mock 3.1.引入mock所需依赖 3.1.IDEA单元测试必备快捷键 3.2.Mock测试相关注 ...

  3. Android mock单例对象,如何对Java单例模式进行mock

    最近刚开始转行到Java编程,项目使用的是Junit4框架.其中遇到了采用单例模式(饿汉)实现的Java代码,那么如何对该类中的方法进行模拟呢?因为该模式下所有的共有方法都是通过获取该类的静态私有实例 ...

  4. Java mock客户端数据_CatMock: Java 下使用 mock.js 生成虚拟数据

    CatMock CatMock 是一个mock.js的 Java 封装库.使用 JDK 自带的 js 脚本引擎直接调用 mock.js 脚本,实现对 mock.js 的统一. 为什么采用这样的方案? ...

  5. java的单元测试-mock测试

    文章目录 简介 Assert mockMVC 优化 mockBean(模拟bean和测试接口) 简介 对于普通的方法,通常采用断言测试. 对于接口,需要使用mockMvc 对于未开发的功能,需要moc ...

  6. Java单元测试之Mock框架

    一.引言 二.为什么要用Mock 三.Mock使用场景 四.Mock定义 五.Mock框架 五.Mockito 5.1 Mockito基本使用 5.2 MockMVC测试 5.2.1 初始化MockM ...

  7. Java单元测试使用mock【转载】

    1.什么是Mock? mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为.比如说你需要调用B服务,可是B服务还没有开发完成,那么你就可以将调用B服务的那部分给 ...

  8. java单元测试之Mock测试编写

    mock框架官方文档地址:https://javadoc.io/static/org.mockito/mockito-core/3.2.0/org/mockito/Mockito.html#verif ...

  9. java mock verify_使用Mockito进行单元测试【1】——mock and verify[转]

    本文转自:http://qiuguo0205.iteye.com/blog/1443344 1. 为什么使用Mockito来进行单元测试? 回答这个问题需要回答两个方面,第一个是为什么使用mock?m ...

最新文章

  1. java gui 案例_JavaGui入门—布局的嵌套使用附实例
  2. Git 合并两个不同的仓库
  3. 结对编程(黄金点游戏)
  4. 从 ThreadLocal 到 AsyncLocal
  5. 【渝粤题库】陕西师范大学200221 中国思想史 作业(高起专)
  6. Python之编写登陆接口
  7. java 捕获 nullpointerexception,Java 空检查链与捕获NullPointerException
  8. vos3000下载java_昆石VOS3000_2.1.4.0完整安装包及安装脚本
  9. qpsk matlab仿真,QPSK 调制与解调(Matlab仿真)
  10. Window10下修改User文件夹中的 用户文件夹 名称
  11. sumif单列求和_求和、单条件求和、多条件求和、隔列求和等实用技巧解读
  12. SpringBoot 发送邮件和附件(实用版)
  13. Excel查询A列中的数据是否在B中存在
  14. 天正的计算机快捷命令大全,天正建筑快捷键命令大全 2
  15. css所有属性大合集,包含中文标题
  16. Jugglefest
  17. Davinci DM6446开发攻略——DSP开发工程建立
  18. 如何使用网线连接树莓派和电脑
  19. uni-app的灰朦层取消滑动以及官方弹出框设计代码
  20. Java 使用dcm4che的工具类findscu查询pacs数据

热门文章

  1. 石墨计算机,石墨文档电脑版
  2. 百度步行导航加poi搜索android,Android Studio百度地图路线规划以及POI搜索功能的实现...
  3. Notice your ways of studing
  4. 比例阀为什么需要比例阀放大器
  5. Servlet.service() for servlet SpringMVC threw exception ---- java.lang.NullPointerException
  6. Docker构建harbor+IDEA,一篇文章就够了
  7. 学大数据要学哪些算法_大数据专业是学什么?
  8. 10-38 A4-7在订单详细信息表中查找包含产品种类数超过特定值的订单信息 (20 分)
  9. 反转链表-就地逆置法
  10. [bzoj1022] [SHOI2008]小约翰的游戏John