一、引入MockMvc依赖
使用MockMvc,必须要引入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
二、具体演示
1、GET请求(单个参数)
测试类代码
@ExtendWith(MockitoExtension.class)classAppControllerTest{privateMockMvc mockMvc;@MockprivateIDB2PatrolResultService idb2PatrolResultService;@InjectMocksprivateDB2PatrolResultController db2PatrolResultController;@BeforeEachvoidsetUp(){this.mockMvc =MockMvcBuilders.standaloneSetup(db2PatrolResultController).build();}@TestvoidtestGet()throwsException{this.mockMvc.perform(MockMvcRequestBuilders.get("/dbm/patrolResult/trigger/{itemCode}","121")).andExpect(status().isOk()).andDo(MockMvcResultHandlers.print()).andReturn();}}
controller类代码
@GetMapping("/trigger/{itemCode}")publicR<Void>execSchedule(@PathVariable("itemCode")String itemCode){return patrolResultService.execSchedule(itemCode);}
2、GET请求(多个参数)
测试类代码:
@ExtendWith(MockitoExtension.class)classAppControllerTest{privateMockMvc mockMvc;@MockprivateIDB2PatrolResultService idb2PatrolResultService;@InjectMocksprivateDB2PatrolResultController db2PatrolResultController;@BeforeEachvoidsetUp(){this.mockMvc =MockMvcBuilders.standaloneSetup(db2PatrolResultController).build();}@TestvoidtestPatrolResult()throwsException{PatrolQueryConfig patrolQueryConfig =newPatrolQueryConfig();
patrolQueryConfig.setItemLevel("0");
patrolQueryConfig.setStatusType("0");String jsonStr =JSONUtil.toJsonStr(patrolQueryConfig);this.mockMvc.perform(MockMvcRequestBuilders.get("/dbm/patrolResult/list").param("itemLevel","1").param("statusType","2")).andExpect(status().isOk()).andDo(MockMvcResultHandlers.print()).andReturn();}}
controller类代码
@GetMapping("/list")publicTableDataInfo<PatrolResult>getRunStatsDataAggs(PatrolQueryConfig patrolQueryConfig){List<PatrolResult> patrolResults = patrolResultService.getPatrolHisResultAggs(patrolQueryConfig);returnTableDataInfo.build(patrolResults);}
3、POST请求(多个参数)
测试类代码
@ExtendWith(MockitoExtension.class)classAppControllerTest{privateMockMvc mockMvc;@MockprivateIDB2PatrolResultService idb2PatrolResultService;@InjectMocksprivateDB2PatrolResultController db2PatrolResultController;@BeforeEachvoidsetUp(){this.mockMvc =MockMvcBuilders.standaloneSetup(db2PatrolResultController).build();}@TestvoidtestPost()throwsException{PatrolQueryConfig patrolQueryConfig =newPatrolQueryConfig();
patrolQueryConfig.setItemLevel("0");
patrolQueryConfig.setStatusType("0");String jsonStr =JSONUtil.toJsonStr(patrolQueryConfig);this.mockMvc.perform(MockMvcRequestBuilders.post("/dbm/patrolResult/list").contentType(MediaType.APPLICATION_JSON_VALUE).content(jsonStr).header(HttpHeaders.ACCEPT,"application/json")).andExpect(status().isOk()).andDo(MockMvcResultHandlers.print()).andReturn();}}
controller类代码
@PostMapping("/list")publicTableDataInfo<PatrolResult>getRunStatsDataAggs(@RequestBodyPatrolQueryConfig patrolQueryConfig){List<PatrolResult> patrolResults = patrolResultService.getPatrolHisResultAggs(patrolQueryConfig);returnTableDataInfo.build(patrolResults);}
三、总结
- 使用MockMvc可以做到controller层的测试。
- 在初始化mockMvc的时候: (1)如果想测试单个controller mockMvc = MockMvcBuilders.standaloneSetup(mockMvcController).build(); (2)如果想测试所有controller mockMvc = MockMvcBuilders.webAppContextSetup(context).build();
本文转载自: https://blog.csdn.net/weixin_43860634/article/details/139317968
版权归原作者 飞翔的佩奇 所有, 如有侵权,请联系我们删除。
版权归原作者 飞翔的佩奇 所有, 如有侵权,请联系我们删除。