滚雪球学MyBatis-Plus(13):测试与部署
前言
在上期内容中,我们深入探讨了 MyBatis Plus 的高级功能,包括自定义 SQL 注解、批量操作以及数据加密与解密。这些功能极大地提高了开发效率,并增强了数据操作的灵活性和安全性。
本期内容将重点介绍 MyBatis Plus 的测试与部署。我们将学习如何编写单元测试和集成测试,确保代码的正确性和可靠性。然后,我们将讨论项目的打包与部署流程,帮助你将开发的应用程序顺利发布到生产环境中。
一、测试概述
测试是软件开发过程中至关重要的一环。通过测试,我们可以验证代码的正确性,发现潜在的问题,并确保系统的稳定性。常见的测试类型包括单元测试、集成测试和功能测试。
二、编写单元测试
单元测试是针对软件中的最小可测试单元(通常是类或方法)进行验证的测试。单元测试的主要目的是确保每个单元的行为符合预期。
-
添加依赖
- 在
pom.xml
中添加 JUnit 和 Spring Boot Test 的依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
- 在
-
编写单元测试类
- 在
src/test/java/com/example/mybatisplusdemo
目录下创建UserServiceTest
类,编写测试方法:package com.example.mybatisplusdemo; import com.example.mybatisplusdemo.entity.User; import com.example.mybatisplusdemo.service.UserService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.List; @SpringBootTest public class UserServiceTest { @Autowired private UserService userService; @Test public void testSaveUser() { User user = new User(); user.setName("Test User"); user.setAge(30); user.setEmail("test@example.com"); boolean result = userService.save(user); assert result; } @Test public void testFindUser() { List<User> users = userService.list(); assert users.size() > 0; } @Test public void testUpdateUser() { User user = userService.getById(1L); user.setAge(35); boolean result = userService.updateById(user); assert result; } @Test public void testDeleteUser() { boolean result = userService.removeById(1L); assert result; } }
- 在
-
运行单元测试
- 在 IDE 中运行
UserServiceTest
类,确保所有测试用例通过。
- 在 IDE 中运行
三、编写集成测试
集成测试是对多个组件或模块进行联合测试,主要目的是验证它们在一起工作时是否正确。
-
编写集成测试类
- 在
src/test/java/com/example/mybatisplusdemo
目录下创建UserControllerTest
类,编写测试方法:package com.example.mybatisplusdemo; import com.example.mybatisplusdemo.entity.User; import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.http.ResponseEntity; import java.util.List; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class UserControllerTest { @Autowired private TestRestTemplate restTemplate; @Autowired private ObjectMapper objectMapper; @Test public void testAddUser() throws Exception { User user = new User(); user.setName("Integration Test User"); user.setAge(28); user.setEmail("integration_test@example.com"); HttpEntity<User> request = new HttpEntity<>(user); ResponseEntity<String> response = restTemplate.postForEntity("/user/add", request, String.class); assert response.getStatusCodeValue() == 200; } @Test public void testGetUsers() { ResponseEntity<List> response = restTemplate.getForEntity("/user/list", List.class); assert response.getStatusCodeValue() == 200; assert response.getBody().size() > 0; } @Test public void testUpdateUser() throws Exception { User user = new User(); user.setName("Integration Test User"); user.setAge(30); user.setEmail("integration_test_updated@example.com"); HttpEntity<User> request = new HttpEntity<>(user); ResponseEntity<String> response = restTemplate.exchange("/user/update", HttpMethod.PUT, request, String.class); assert response.getStatusCodeValue() == 200; } @Test public void testDeleteUser() { ResponseEntity<String> response = restTemplate.exchange("/user/delete?name=Integration Test User", HttpMethod.DELETE, null, String.class); assert response.getStatusCodeValue() == 200; } }
- 在
-
运行集成测试
- 在 IDE 中运行
UserControllerTest
类,确保所有测试用例通过。
- 在 IDE 中运行
四、项目打包
在完成所有开发和测试后,我们需要将项目打包,以便部署到生产环境中。
-
打包命令
- 在项目根目录下运行 Maven 打包命令:
mvn clean package
- 在项目根目录下运行 Maven 打包命令:
-
生成的 JAR 文件
- 打包完成后,在
target
目录下生成一个可执行的 JAR 文件,例如mybatis-plus-demo-0.0.1-SNAPSHOT.jar
。
- 打包完成后,在
五、项目部署
-
部署到服务器
- 将生成的 JAR 文件上传到目标服务器。
-
运行 JAR 文件
- 在服务器上运行以下命令启动应用:
java -jar mybatis-plus-demo-0.0.1-SNAPSHOT.jar
- 在服务器上运行以下命令启动应用:
-
访问应用
- 打开浏览器,访问应用的 URL,验证应用是否正常运行。
六、总结
通过本篇文章,你已经学会了如何编写单元测试和集成测试,以确保代码的正确性和可靠性。同时,我们还介绍了项目的打包与部署流程,帮助你将开发的应用程序顺利发布到生产环境中。测试与部署是软件开发中不可或缺的一部分,通过这些步骤,你可以保证项目的高质量和稳定运行。
下期预告
在下一期内容中,我们将总结整个 MyBatis Plus 系列教程的内容,并推荐一些拓展阅读资料和学习方向。我们还会分享一些实际项目中的经验和技巧,帮助你更好地应用 MyBatis Plus 进行开发。敬请期待!
通过本系列教程的学习,你已经系统地掌握了 MyBatis Plus 的各项功能,从基础到高级,从理论到实践,全面提升了你的开发技能。希望你在学习过程中能够有所收获,并应用到实际项目中。让我们继续这段学习之旅吧!