前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >idea代码测试覆盖率

idea代码测试覆盖率

原创
作者头像
查拉图斯特拉说
发布于 2023-11-30 11:07:39
发布于 2023-11-30 11:07:39
75700
代码可运行
举报
文章被收录于专栏:后端架构后端架构
运行总次数:0
代码可运行

前言

单元测试其实是检测代码最好的方式,单元测试,代码质量,这些都是很好的工具,单元测试需要结合mockito框架进行mock来测试,否则没用的数据写入到数据库里面也是占用空间,本身测试只是为了检查我的逻辑是否合理,流程是否通顺,判断是否到位。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
<groupId>org.mockito</groupId>
 <artifactId>mockito-all</artifactId>
 <version>1.10.19</version>
 <scope>test</scope>
</dependency>

步骤

运行单元测试覆盖

首先选中需要测试的类的方法

运行之后会有一份测试报告给出来

点击对应的类查看覆盖结果,红色表示没有覆盖,绿色表示覆盖到了。

测试报告

也可以选择导出测试报告会以html的形式放在某个指定的目录

打开index.html之后显示的内容与窗口看到一样

打开点开相应的类看到的结果也是一样,非常方便

mockito单元测试

当你碰到一个庞大且复杂的逻辑的时候,相信你一定很困惑,如何进行单元测试是个问题,因为你要不就直接从api接口一个接口一个接口调用,然后还依赖环境的支持,如果环境不友好比如别人也在用你就很难了,因为你不能把存在很多问题的代码部署到环境上面。

有需求就有市场,总有一些大佬会做一些事情,向前走了一公里,mockito框架应运而生,缝管你什么代码逻辑,都可以局部测试,很方便的处理的大部分不好单元测试的逻辑,你需要什么样的数据就造什么样的数据,非常方便还可以复用,下次修改动,只需要简单跑跑单元测试就好。非常nice

导入包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>1.10.19</version>
        <scope>test</scope>
    </dependency>
    <dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-inline</artifactId>
			<version>4.5.1</version>
			<scope>test</scope>
		</dependency>

用例代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@ContextConfiguration(classes = {EnableServerScheduleService.class, ServerDao.class})
@ExtendWith(SpringExtension.class)
class MonitorServiceRecordServiceDiffblueTest {
    @Test
    void testMonitorServiceAfterWork2() {
        SimpMessagingTemplate message = new SimpMessagingTemplate(mock(MessageChannel.class));
        message.setUserDestinationPrefix("getUU");
        ServerDao serverDao = mock(ServerDao.class);
        when(serverDao.findAllServer(Mockito.<String>any(), Mockito.<List<Integer>>any(), Mockito.<String>any(),
                Mockito.<List<String>>any())).thenReturn(new ArrayList<>());
        MonitorServiceRecordExtendDao monitorServiceRecordExtendDao = mock(MonitorServiceRecordExtendDao.class);
        RedisUtil redisUtil = new RedisUtil();
        (new MonitorServiceRecordService(monitorServiceRecordExtendDao, message, redisUtil, new SystemConfig(),
                serverDao)).monitorServiceAfterWork();
        verify(serverDao).findAllServer(Mockito.<String>any(), Mockito.<List<Integer>>any(), Mockito.<String>any(),
                Mockito.<List<String>>any());
    }
}

总结

测试覆盖查看还是很方便的,只是你要把每种情况都要考虑到,提供对应的代码示例去执行对应的代码块。不得不说idea这个测试报告还是挺友好的对与那些测试人员可以直观的看到测试覆盖的结果,对于开发人员也非常友好,直接看到那些代码覆盖到没有覆盖到。

引用

https://site.mockito.org/

最后

点赞关注评论一键三连,每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力!

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mock测试及jacoco覆盖率
单元测试是保证项目代码质量的有力武器,但是有些业务场景,依赖的第三方没有测试环境,这时候该怎么做Unit Test呢,总不能直接生产环境硬来吧?
菩提树下的杨过
2020/09/11
4.5K1
JAVA实战:如何让单元测试覆盖率达到80%甚至以上
单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证。它是软件测试中的一种基本方法,也是软件开发过程中的一个重要步骤。
你可以叫我老白
2023/03/21
4.2K1
JAVA实战:如何让单元测试覆盖率达到80%甚至以上
单元测试
  每个开发人员都写过很多代码、函数,但是你能保证你写的每个函数都能执行并且正常吗?   我们太多时间站在功能需求的角度来审视我们的代码,认为需求实现功能逻辑正常,我们就完成了自己的使命。功能逻辑固然重要这个也是我们的目标。但是仅此而已吗,首先作为开发人员要知道,代码的终极目标有两个:实现需求保证逻辑正常、保证代码质量和可维护性。测试人员只能帮助我们查漏需求是否完整实现,对于代码质量和可维护性是需开发自己保证的,所以单元测试必不可少。
OPice
2019/11/11
1.8K0
走进Java接口测试之Mock(概念篇)
在接口测试过程中,对于某些不容易构造或者不容易获取的对象,我们常常会用一个虚拟的对象代替以便测试。在具体的测试过程中,我们经常会碰到需要模拟数据或者接口的情况,因为环境问题或者系统复杂度的问题,我们需要使用 Mock 方式进行数据的模拟。
高楼Zee
2019/07/17
11.4K0
走进Java接口测试之Mock(概念篇)
使用dropwizard(4)-加入测试-jacoco代码覆盖率
前言 dropwizard提供了一个简单的测试框架。这里简单集成并加入jacoco测试。 Demo source https://github.com/Ryan-Miao/l4dropwizard 本文是基于dropwizard入门之上的演进。 确保依赖都是最新的,或者自行解决版本冲突,比如jackson不同版本之间的类有所不同。 加入dropwizard-testing 在dependencies中增加依赖 <dependency> <groupId>io.dropwizard</groupId
Ryan-Miao
2018/03/14
1.4K0
Mockito模拟进行单元测试
    MOCK意思是模拟的意思,主要被用来进行数据的人工组织,不会真正地调用第三方服务器,类似redis,mysql等都不会调用,也不用关心数据底层是如何进行处理的,我们要做的只是将本单元的逻辑进行单元测试,验证数据的逻辑处理性,而其中mock较好的框架就是Mockito。
chinotan
2019/07/15
9.8K0
Mockito模拟进行单元测试
spring service层单元测试
service层测试较简单,目前大多数测试主要是针对public方法进行的。依据测试方法划分,可以分为两种:基于mock的隔离测试和基于dbunit的普通测试。 mock隔离测试 配置pom.xml
YGingko
2017/12/28
3K0
spring service层单元测试
单元测试的正确姿势
框架的选择大同小异。Junit4&Junit5的对比:《Junit4&Junit5对比》
有一只柴犬
2024/01/25
4120
单元测试的正确姿势
SonarQube中Maven项目的测试覆盖率报告
SonarQube将所有测试报告合并为一份涵盖整体的测试报告。因此,如果您在Maven项目中将单元测试(由Maven Surefire Plugin运行)和集成测试(由Maven Failsafe Plugin运行)分开进行测试,那么如何配置 JaCoCo Maven Plugin。
DevOps云学堂
2020/06/15
3.3K0
两个基于spring的单元测试简单样例
单元测试,从一定程度上可以看出一个同学达到的层次。但又不完全是,有时可能只是一个思考方式的转变。单元测试有非常多的工具供选择,在java中,junit无疑是比较常用的。本文列出,junit在spring中的使用样例,供参考。
烂猪皮
2021/04/02
8860
Spock框架Mock对象、方法经验总结
近期已然陷入了单元测试的汪洋大海,上万行的代码突然要求起来单元测试覆盖率,着实很恐怖的。最经过艰苦的抗争学习之后,终于迈过了技术这个坎儿,特来分享一下最近踩坑的经历,和一些典型的使用场景案例分享。
FunTester
2022/02/08
5.4K4
Java单元测试Mock框架Mockito入门介绍
Mockito是Java的单元测试Mock框架。它的logo是一杯古巴最著名的鸡尾酒Mojito,Mojito鸡尾酒,源自古巴的哈瓦那,带有浓厚的加勒比海风情。并不浓烈,但是喝一杯下去,脸上会泛起红晕,象少女的羞涩。味道很清新,有一点青涩、有点甜蜜。
dongfanger
2021/07/21
5.3K0
测试覆盖率 之 Cobertura的使用
代码覆盖率是对整个测试过程中被执行的代码的衡量,它能测量源代码中的哪些语句在测试中被执行,哪些语句尚未被执行。
软件测试君
2022/05/17
2.4K1
测试覆盖率 之 Cobertura的使用
Mockito 一个优秀的 Mock 测试框架
Hello 大家好,我是阿粉,日常工作中很多时候我们都需要同事间的相互配合协作完成某些功能,所以我们经常会遇到服务或者应用内不同模块之间要互相依赖的场景。比如下面的场景,serviceA 中的 methodA() 方式依赖 serviceB 中的 methodB() 方法返回操作的结果。那如果我们要对自己的methodA() 方法进行编写单元测试,还需要等其他同事的methodB() 方法开发完成才行。那有没有什么办法我们可以跳过或者说模拟方法 B 的输出呢?这就引出了我们今天的主角 Mockito,一个优秀的 Mock 测试框架。
Java极客技术
2022/12/02
1.9K0
Mockito 一个优秀的 Mock 测试框架
Spring单元测试
单元测试对开发来说是一种基本素养。Java这方面的工业标准是使用JUnit。在使用了Spring框架及其衍生的相关框架后,会有不同程度的变化。
李鸿坤
2020/11/03
1.2K0
mockito测试final类/static方法/自己new的对象
1. 里面用到的NewObject,并不是@Autowired之类由Spring注入的,而是自己new的
菩提树下的杨过
2021/09/15
6.7K0
Java单元测试Mock工具Mockito介绍
Mock就是在测试过程中对于那些不容易构建的依赖进行模拟,以保证系统的测试流程可以正常运行,即生成一个和实际使用场景不一样的对象;
心平气和
2021/10/14
3.4K0
使用PowerMock进行单元测试
单元测试可以提高测试开发的效率,减少代码错误率,提高代码健壮性,提高代码质量。在Spring框架中常用的两种测试框架:PowerMockRunner和SpringRunner两个单元测试,鉴于SpringRunner启动的一系列依赖和数据连接的问题,推荐使用PowerMockRunner,这样能有效的提高测试的效率,并且其提供的API能覆盖的场景广泛,使用方便,可谓是Java单元测试之模拟利器。
Dream城堡
2022/01/07
3.8K0
TestNG + PowerMock 单元测试
单元测试(Unit Testing),是指对软件或项目中最小可测试单元进行正确性检验的测试工作。单元是人为规定最小可测试的功能模块,可以是一个模块,一个函数或者一个类。单元测试需要与模块开发进行隔离情况下进行测试。
没有故事的陈师傅
2021/05/14
1.8K0
如何使用调试与测试技巧:使用JUnit和Mockito简化单元测试
在现代软件开发中,调试和测试是确保代码质量和可靠性的重要环节。对于Java开发者来说,JUnit和Mockito是两个非常常用的工具,它们能够显著简化单元测试,减少调试和测试中的复杂性。JUnit帮助开发者自动化和管理单元测试,而Mockito则用于模拟和“伪造”外部依赖,使测试更加简单和高效。本文将详细介绍如何使用JUnit和Mockito进行调试和测试,帮助你轻松编写高质量的Java代码。
默 语
2025/02/02
3410
相关推荐
mock测试及jacoco覆盖率
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验