sping boot 異常和單元測試
建立一個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")))