接续上一篇
本篇为了使用requestBody验证功能,如使用到@Valid及@NotBlank,请先引入套件
待测系统介绍
相同的IssueController,这里要进行验证的是:
POST /api/issue - 传入正确的RequestBody,并验证回传的资讯
新增Issue发现title未填验证失败。如果经过@Valid发现有属性未通过验证(本案例为title必填),则回传http status code 400,并产生错误讯息。
新增Issue成功。成功新增issue则回传建立的issue讯息,以及http status code 201
Issue类别,加入了可以跟@Valid配合的@NotBlank,这里如果验证未通过,则会抛出MethodArgumentNotValidException。
输出输入Controller层会经过设定好的@ControllerAdvice,并注解@ExceptionHandler指定处理MethodArgumentNotValidException,加工后回传相应的资讯。
title未填验证不过,回传的错误资讯
Controller单元测试的配置,请参考以下代码:
因为测试案例中会须需要用到json格式的资料,这里建立一个工具类别来传入物件后回传json格式的资讯
新增Issue发现title未填验证失败
验证http status code为400。
验证它回传一个错误资讯。
验证它是回传正确的错误资讯。
验证它没有建立一个错误的issue。
这边直接列出第二层类别,请参考以下代码:
新增Issue成功
验证回传http status code为201。
验证它回传正确的资讯。
验证它建立一个空id的issue。
验证它使用正确的标题建立了一个任务。
验证它使用正确的描述建立了一个任务。
以上,Spring MVC Controller的单元测试就到这边啰。
閱讀更多 Java高級開發工程師 的文章