Java程序设计:spring boot(10)——单元测试

1 pom.xml 测试依赖添加

java 复制代码
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-test</artifactId>
</dependency>

2 Service业务方法测试

以 UserService 为例,src/test/java ⽬录下添加测试包 com.xxxx.sprinboot.service 定义测试类代码如下 :

java 复制代码
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Starter.class})
public class TestUserService {
 private Logger log = LoggerFactory.getLogger(TestUserService.class);
 @Resource
 private UserService userService;
 @Before
 public void before(){
 log.info("单元测试开始...");
 }
 @Test
 public void test01(){
 log.info("⽤户记录:{}", userService.queryUserById(1).toString());
 }
 @Test
 public void test02(){
 log.info("⽤户记录:{}", userService.queryUserByParams(new
UserQuery()).toString());
 }
 @After
 public void after(){
 log.info("单元测试结束...");
 }
}

3 控制层接口测试方法

视图层代码使⽤ MockMvc 进⾏测试,以UserCntroller 为例,src/test/java ⽬录下添加测试包 com. xxxx.sprinboot.controller 定义测试类代码如下:

java 复制代码
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Starter.class})
@AutoConfigureMockMvc
public class TestUserController {
 
 private Logger log = LoggerFactory.getLogger(TestUserController.class);
 @Autowired
 private MockMvc mockMvc;
 //⽤户列表查询
 @Test
 public void apiTest01() throws Exception{
 
 // 构建请求
 MockHttpServletRequestBuilder request =
MockMvcRequestBuilders.get("/user/list")
 .contentType("text/html") // 指定请求的contentType头信息
 .accept(MediaType.APPLICATION_JSON); // 指定请求的Accept头信息
 
 // 发送请求,获取请求结果
 ResultActions perform = mockMvc.perform(request);
 
 // 请求结果校验
 perform.andExpect(MockMvcResultMatchers.status().isOk());
 
 // 表示执⾏完成后返回相应的结果
 MvcResult mvcResult = perform.andReturn();
 // 得到执⾏后的响应
 MockHttpServletResponse response = mvcResult.getResponse();
 
 log.info("响应状态:{}", response.getStatus());
 log.info("响应内容:{}", response.getContentAsString());;
 
 }
 // ⽤户名记录查询
 @Test
 public void apiTest02() throws Exception{
 MvcResult mvcResult =
mockMvc.perform(MockMvcRequestBuilders.get("/user/admin")).
 andExpect(MockMvcResultMatchers.status().isOk()).andReturn();
 log.info("响应状态:{}",mvcResult.getResponse().getStatus());
 log.info("响应内容:{}",mvcResult.getResponse().getContentAsString());;
 }
}
相关推荐
郝开23 分钟前
Spring Boot 2.7.18(最终 2.x 系列版本)1 - 技术选型:连接池技术选型对比;接口文档技术选型对比
java·spring boot·spring
安冬的码畜日常1 小时前
【JUnit实战3_30】第十八章:REST API 接口测试(下)—— REST API 接口的 MockMvc + JUnit 5 测试实战
测试工具·junit·单元测试·restful·rest api·junit5
小猪咪piggy1 小时前
【项目】小型支付商城 MVC/DDD
java·jvm·数据库
知兀1 小时前
【Spring/SpringBoot】SSM(Spring+Spring MVC+Mybatis)方案、各部分职责、与Springboot关系
java·spring boot·spring
向葭奔赴♡1 小时前
Spring IOC/DI 与 MVC 从入门到实战
java·开发语言
早退的程序员1 小时前
记一次 Maven 3.8.3 无法下载 HTTP 仓库依赖的排查历程
java·http·maven
向阳而生,一路生花1 小时前
redis离线安装
java·数据库·redis
Tigshop开源商城系统1 小时前
Tigshop 开源商城系统 php v5.1.9.1版本正式发布
java·大数据·开源·php·开源软件
2401_841495641 小时前
【数据结构】基于BF算法的树种病毒检测
java·数据结构·c++·python·算法·字符串·模式匹配
little_xianzhong1 小时前
三个常听到的消息/中间件MQTT RabbitMQ Kafka
java·笔记·中间件·消息队列