springboot入门06 – 接口单元测试方案

以前写过关于springboot Controller层单元测试的系列文章(Spring Controller层测试)。但是那几篇文章还是更偏方法论一些,不能直接拿来使用。所以有了这偏内容,目的主要是记录下平时使用的Controller层单元测试方案。

在这里先定义一个普通的api接口类WorkerApi

这个接口里的4个方法覆盖了平时常用的四种Http请求方案,并将请求结果用一个统一的ResultWrapper类进行了封装(关于如何封装请求结果请参考上一篇文章SpringBoot Controller返回值封装)。

然后是单元测试方案。这里有两个超类:TestBaseApiTestBase。前者用来对普通的注入实例进行测试,后者主要用来对Api接口进行测试。

TestCase类内容如下:

通过类内容可以看到,在测试中会启动一个内嵌的WebServer来加载Spring Context。这样的测试比较重一些,不过也和实际使用场景更一致一些。

ApiTestBase类继承了TestBase类。在这个类里引用了TestRestTemplate的实例执行具体的接口调用,此外还定义了一些公用方法来减少使用时的代码量:

这里为每种请求都定义了两个方法,以根据需要返回不同形式的返回值。

看下是怎样使用的:

有时候还会有在执行测试前添加虚拟机环境参数的需要,此时可以视情况在TaseBaseApiTestBase或测试类中添加静态代码块并设置虚拟机参数:

就这样。代码已经传到了GitHub上,有需要请自行查阅: GitHub / zhyea

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据