Spring MVC Controller Unit Test(三)

Spring MVC Controller Unit Test(三)

接续上一篇

本篇为了使用requestBody验证功能,如使用到@Valid及@NotBlank,请先引入套件

Spring MVC Controller Unit Test(三)

待测系统介绍

相同的IssueController,这里要进行验证的是:

  • POST /api/issue - 传入正确的RequestBody,并验证回传的资讯

  1. 新增Issue发现title未填验证失败。如果经过@Valid发现有属性未通过验证(本案例为title必填),则回传http status code 400,并产生错误讯息。

  2. 新增Issue成功。成功新增issue则回传建立的issue讯息,以及http status code 201

Spring MVC Controller Unit Test(三)

Issue类别,加入了可以跟@Valid配合的@NotBlank,这里如果验证未通过,则会抛出MethodArgumentNotValidException。

Spring MVC Controller Unit Test(三)

输出输入Controller层会经过设定好的@ControllerAdvice,并注解@ExceptionHandler指定处理MethodArgumentNotValidException,加工后回传相应的资讯。

Spring MVC Controller Unit Test(三)

Spring MVC Controller Unit Test(三)

Spring MVC Controller Unit Test(三)

Spring MVC Controller Unit Test(三)

title未填验证不过,回传的错误资讯

Spring MVC Controller Unit Test(三)

Controller单元测试的配置,请参考以下代码:

Spring MVC Controller Unit Test(三)

因为测试案例中会须需要用到json格式的资料,这里建立一个工具类别来传入物件后回传json格式的资讯

Spring MVC Controller Unit Test(三)

新增Issue发现title未填验证失败

验证http status code为400。

验证它回传一个错误资讯。

验证它是回传正确的错误资讯。

验证它没有建立一个错误的issue。

这边直接列出第二层类别,请参考以下代码:

Spring MVC Controller Unit Test(三)

Spring MVC Controller Unit Test(三)

Spring MVC Controller Unit Test(三)

Spring MVC Controller Unit Test(三)

新增Issue成功

  1. 验证回传http status code为201。

  2. 验证它回传正确的资讯。

  3. 验证它建立一个空id的issue。

  4. 验证它使用正确的标题建立了一个任务。

验证它使用正确的描述建立了一个任务。

Spring MVC Controller Unit Test(三)

Spring MVC Controller Unit Test(三)

Spring MVC Controller Unit Test(三)

Spring MVC Controller Unit Test(三)

Spring MVC Controller Unit Test(三)

Spring MVC Controller Unit Test(三)

以上,Spring MVC Controller的单元测试就到这边啰。



分享到:


相關文章: