sping boot 异常和单元测试

来源:互联网 发布:淘宝人工 编辑:程序博客网 时间:2024/05/17 20:34

建立一个MyException继承RuntimeException类,定义一code属性,其构造方法且传入message参数,用父类方法实现,并封装属性;

建立一个ExceptionHandle类处理异常,用@ControllerAdvice注解来统一处理异常;

方法,Result  handle(Exception e)使用@ResponseBody和@ExcepitonHandler value=Exception.class捕获异常类注解,判断 e instanceof MyException判断处理的异常是否是自己定义的异常,如果不是的话返回未知错误,如果是的话,返回code message的方法调用;

可以建一个枚举类来管理异常中的code 和message ,定义code message ,它们的构造方法和getter方法,并定义几种语句UNKNOWN_ERROR(),SUCCESS(),PRIMARY_HEIGHT,MIDDLE_HEIGHT;


Service层单元测试 @Test方法  测试类用@RunWith(SpringRunner.class) @SpringBootTest单元测试  自动注入Service属性;

MyChara myChara=myCharaService.findOne(4);

Assert.assertEquals(new Integer(122),myChara.getHeight());

Controller层单元测试测试类@RunWith(SpringRunner.class)@SpringBootTest @AutoConfigureMockMvc   自动注入MockMvc  mvc属性

mvc.perform(MockMvcRequestBuilders.get("/girls").andExpect(MockMvcResultMatchers().status().isOk().andExpect(MockMvcResultMatchers().content().string("abc")))