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());;
 }
}
相关推荐
曹轲恒16 小时前
Java中断
java·开发语言
xxxmine16 小时前
Java并发wait(timeout)
java
冰冰菜的扣jio16 小时前
Redis缓存问题——一致性问题、事务、持久化
java·spring·mybatis
施棠海17 小时前
监听与回调的三个demo
java·开发语言
毕设源码-钟学长17 小时前
【开题答辩全过程】以 家政服务平台为例,包含答辩的问题和答案
java
sheji341619 小时前
【开题答辩全过程】以 家庭教育资源网为例,包含答辩的问题和答案
java
百***787520 小时前
Grok-4.1与GPT-5.2深度对比:技术差异、适用场景及Python集成指南
java·python·gpt
Mr -老鬼20 小时前
Java VS Rust
java·开发语言·rust
北凉军20 小时前
java连接达梦数据库,用户名是其他库的名称无法指定库,所有mapper查询的都是以用户名相同的库内的表
java·开发语言·数据库