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());;
 }
}
相关推荐
西瓜本瓜@2 小时前
在Android中如何使用Protobuf上传协议
android·java·开发语言·git·学习·android-studio
言之。2 小时前
别学了,打会王者吧
java·python·mysql·容器·spark·php·html5
机智的人猿泰山2 小时前
java kafka
java·开发语言·kafka
Algorithm15762 小时前
谈谈接口和抽象类有什么区别?
java·开发语言
细心的莽夫3 小时前
SpringCloud 微服务复习笔记
java·spring boot·笔记·后端·spring·spring cloud·微服务
264玫瑰资源库4 小时前
问道数码兽 怀旧剧情回合手游源码搭建教程(反查重优化版)
java·开发语言·前端·游戏
pwzs4 小时前
Java 中 String 转 Integer 的方法与底层原理详解
java·后端·基础
东阳马生架构5 小时前
Nacos简介—2.Nacos的原理简介
java
普if加的帕5 小时前
java Springboot使用扣子Coze实现实时音频对话智能客服
java·开发语言·人工智能·spring boot·实时音视频·智能客服
爱喝一杯白开水5 小时前
SpringMVC从入门到上手-全面讲解SpringMVC的使用.
java·spring·springmvc