Junit4 + Mockito进行单元测试实战案例
创始人
2025-06-01 20:41:55
0


实战代码案例:

1,引入依赖

            org.springframework.bootspring-boot-starter-test2.1.0.RELEASE
引入spring-boot-starter-test依赖就好,因为此版本的框架中默认集成了Junit4和Mockito。

2,引入插件TestMe

​​​​​​​​​​​在这里插入图片描述
注意:idea2021.3.3之前的版本都搜索不到这个插件。

3,单元测试代码编写

使用TestMe自动生成单元测试代码:

public class UserServiceImplTest {//创建模拟对象@MockUserManager userManager;//注入mock对象@InjectMocksUserServiceImpl userServiceImpl;@Beforepublic void setUp() {//使@Mock和@InjectMocks对象生效MockitoAnnotations.initMocks(this);}@Testpublic void testGetUserByUid() throws Exception {User user = new User();user.setUid(2055755111L);user.setCountryId(1);//设置模拟对象的行为when(userManager.getUserByUid(111L)).thenReturn(user);//执行代码User user = userServiceImpl.getUserByUid(111L);//断言结果是否符合预期Assert.assertNotNull(user);}
}
public class UserServiceImpl{@AutowiredUserManager userManager;public User getUserByUid(Long uid) {//Some logicsUser user = userManager.getUserByUid(111L);//Another logics}
}

4,自动化执行单元测试

不是自动化执行的单元测试都是无意义的,项目中那么多单测,难道一个一个点吗?
引入maven-surefire-plugin插件用于自动化执行单测。

            org.apache.maven.pluginsmaven-surefire-plugin2.22.1com.user.service.UserServiceImpl                   

include里表示需要进行执行的单测类,可以定义一大批类,如:**/*.Tests.java(所有以 “Test” 结尾的 Java 文件)。
执行maven命令:

mvn clean test   先清除旧的编译项目,在运行test内容。

target下surefire-reports下可以看到刚刚运行的单测测试报告。
在这里插入图片描述

5,生成测试率覆盖报告

命令:

mvn cobertura:cobertura

site下的index.html即可看到覆盖率报告。
在这里插入图片描述
大概长这样:
在这里插入图片描述

相关内容

热门资讯

奢侈品“教父”吴越的新任务:上... 本文来源:时代周报 作者:刘婷“中国奢侈品教父”吴越有了新头衔。12月10日,泡泡玛特(09992....
ST摩登:公司股票自11月11... 11月10日消息,ST摩登公告,公司于2024年5月10日收到广东证监局责令改正措施,要求公司在六个...
上海调整家电家居以旧换新政策,... 11月10日消息,从上海市商务委获悉,紧随进博会的步伐,上海家电家居以旧换新嘉年华也在以“展”促“消...
长飞光纤:拟收购El.En.附... 11月10日消息,长飞光纤公告,公司已与El.En. S.p.A.签署《股权收购框架协议》,拟以现金...
市场监管总局发布电热毯等5类产... 11月10日消息,“双十一”来临之际,市场监管总局发布近期受到广泛关注的电热毯、智能坐便器、定制家具...
以太坊突破3200美元,创8月... 11月10日消息,以太坊突破3200美元,创8月以来新高。
交银国信总裁将换任 图片来源:摄图网全文共667字,阅读全文约需2分钟余桑将出任交银国信总裁一职,该任职资格尚待监管核准...
科技股低迷美股开启板块轮动,年... 随着本周甲骨文和博通业绩发布,市场对于人工智能成长性的质疑重现,估值风险带来的波动引发了新一轮板块轮...
蜜雪冰城要卖早餐了?雪王又跨界... 说起奶茶巨头,蜜雪冰城一定是绕不过去的名字,通过强大的市场网络和超级洗脑的各种营销,蜜雪冰城在中文互...