springBoot 单元测试
首先引入依赖:
在 Test 文件夹, 创建相关包, 然后创建测试类. 增加2个注解:
@RunWith(SpringRunner.class) //底层用 Junit, SpringJunit4ClassRunner
@SpringBootTest(class={XXXapplication.class}) // 就是启动整个springboot 工程的类.
TestCase 是用来写断言的. 直接在这个 testOne 上右键 run as Junit test, 这样, 就会整个 springboot 启动来测试.
也可以选中这个 class , run as Junit test. 测试这个class 里的所有的测试方法.
@AutoConfigureMockMvc 可以模拟 client 请求, 虽然, 我们有 Postman, 但是, postman 是针对单个 controller 的测试,
而使用这个 MockMvc 可以是可以针对批量的 controller 来进行测试的
启动 debug 信息
java -jar xxx.jar --debug (会显示更多启动信息)
异常处理
异常注解: @ControllerAdvice,@RestControllerAdvice (直接返回 Json 格式)
可以当出现异常时, 集中处理, 而不是使用默认的, 因为默认的是不友好的。
自定义异常
首先, 自定义一个异常类 MyException, 主要包含2个属性, code 和 msg
这样, 当我们抛出我们自定义异常时, 同样还是进入到我们的 CustomExHandler 这个类里, 只是我们有了处理自定义异常的方法:
一般都是返回 Json 数据的.
error.html 是我们自己做的页面, 通过springboot 的模板类注解.
但,个人感觉,不想要异常的这种跳转页面, 因为我们一般都是前后端分离的. 个人还是觉得自定义异常也返回 JSON 格式异常数据好一些.
这种自定义异常, 都是逻辑上的错误, 并不是服务器出了什么问题.