实战代码案例:
org.springframework.boot spring-boot-starter-test 2.1.0.RELEASE
引入spring-boot-starter-test依赖就好,因为此版本的框架中默认集成了Junit4和Mockito。

注意:idea2021.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}
}
不是自动化执行的单元测试都是无意义的,项目中那么多单测,难道一个一个点吗?
引入maven-surefire-plugin插件用于自动化执行单测。
org.apache.maven.plugins maven-surefire-plugin 2.22.1 com.user.service.UserServiceImpl
include里表示需要进行执行的单测类,可以定义一大批类,如:**/*.Tests.java(所有以 “Test” 结尾的 Java 文件)。
执行maven命令:
mvn clean test 先清除旧的编译项目,在运行test内容。
target下surefire-reports下可以看到刚刚运行的单测测试报告。

命令:
mvn cobertura:cobertura
site下的index.html即可看到覆盖率报告。

大概长这样:

下一篇:树状数组(区间维护/单点修改)