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 分钟前
day15——Java常用API(二):常见算法、正则表达式与异常处理详解
java·算法·正则表达式
Bug退退退1236 分钟前
RabbitMQ 高级特性之消息确认
java·分布式·rabbitmq
考虑考虑20 分钟前
使用jpa中的group by返回一个数组对象
spring boot·后端·spring
十一08299323 分钟前
【PDF-XSS攻击】springboot项目-上传文件-解决PDF文件XSS攻击
spring boot·pdf·xss
云动雨颤40 分钟前
Java并发性能优化|读写锁与互斥锁解析
java
ldj20201 小时前
Centos 安装Jenkins
java·linux
hqxstudying1 小时前
Intellij IDEA中Maven的使用
java·maven·intellij-idea
SimonKing1 小时前
拯救大文件上传:一文彻底彻底搞懂秒传、断点续传以及分片上传
java·后端·架构
深栈解码1 小时前
JUC并发编程 内存布局和对象头
java·后端
北方有星辰zz1 小时前
数据结构:栈
java·开发语言·数据结构