单元测试代码
@SpringBootTest@AutoConfigureMockMvcpublicclassTrialQuestionTest{@AutowiredprivateMockMvc mockMvc;@Value("${test.token}")privateString token;@Value("${test.language}")privateString language;@TestvoidcontextLoads()throwsException{//新增Long id =add();//分页列表// pageList();// //修改// update(id);// //查看详情// getDetail(id);// //批量删除// delete(Collections.singletonList(id));}/**
* 新增
* @throws Exception
*/@TestLongadd()throwsException{String body ="{\n"+" \"questionDescribe\": \"This is a test question\",\n"+" \"questionOption\": \"A,B,C,D\",\n"+" \"questionType\": 2,\n"+" \"sort\": 20\n"+"}";String content = mockMvc.perform(MockMvcRequestBuilders.post("/trialQuestion").contentType(MediaType.APPLICATION_JSON).content(body).header("TOKEN", token).header("accept-language", language).accept(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.status().isOk()).andDo(print()).andReturn().getResponse().getContentAsString();Map map =(Map)JSONObject.parseObject(content,RestData.class).getData();returnLong.parseLong(String.valueOf(map.get("id")));}/**
* 分页列表
* @throws Exception
*/@TestvoidpageList()throwsException{
mockMvc.perform(MockMvcRequestBuilders.get("/trialDatabase/page").param("current","1").param("size","30")// .param("filterRule", "1")// .param("filterValue","Gale")// .param("providerId", "41").contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON).header("TOKEN", token).header("accept-language", language)).andExpect(MockMvcResultMatchers.status().isOk()).andDo(print());}
- 执行contextLoads()方法的时候是没问题的。
- 当想单独执行add()方法时就出现了No tests were found这个错误。
- 然后我试着将add()方法返回值改成void,执行成功。
- 又试了一下将方法定义为private,同样报错。
由此可得出:
- @Test注解的单元测试方法 不能有返回值 ,要用 void 。
- 方法定义为 private 的也不行,必须为 public (默认)。
本文转载自: https://blog.csdn.net/Halo333/article/details/125757191
版权归原作者 Halo丶3 所有, 如有侵权,请联系我们删除。
版权归原作者 Halo丶3 所有, 如有侵权,请联系我们删除。