本文将讨论如何测试Spring Boot程序的Web层。借助MockMVC API和公共测试库,以实现Web层方法的测试覆盖范围,以及如何自定义MOCEMVC。
创建一个新的Spring Boot项目,并确保该项目具有以下Maven依赖性:
首先,创建相应控制器类的单元测试类,并使用注释标记测试类表明它是Spring Boot单位测试类。运行测试类时,框架将创建一个应用程序上下文。在此应用程序上下文中创建了一个应用程序上下文,例如某些服务组件或控制器类所依赖的配置组件。
然后使用注释自动组装可以在Web层测试中扮演关键角色的MockMVC对象。我们编写的控制器方法是通过MOCKMVC实现测试调用。
此外,在编写测试方法之前,官方建议是在下面静态地介绍这些类,以编写简单的步骤方法和验证方法。
内容,方法等;主要是指向结果的额外操作,例如打印,日志记录等。
从最简单开始,当我们实现对用户请求请求的接口访问时,用户信息路径是:
目前要实施的测试代码如下:
@teest
void Shop_get_user()抛出异常{
MOCKMVC.Perform(get(“/user/{id}”,1L)
.anddo(print()))
.andexpect(status()。isok()))
。
}可以看出,这是请求路径上的参数的GET请求,然后查看GET方法的构造。可以看出,如果有多个参数,则可以在变量参数列表中进行补充。
此外,在上述测试方法实施中,响应代码在上述测试方法中为200。当响应结果是JSON数据时,用户名字段的值是test.jsonpath理解。
上面的代码完成了测试访问和get请求的主张。然后问题又来了。如果请求路径上没有参数,则如何编写测试?在这里我们建立了一个GET请求。访问路径如下:
该请求的测试方法如下。使用补充特定请求参数键值对。如果有多个请求参数,您也可以通过链条调用添加它。
在解释了测试GET请求方法之后,我们将了解如何测试帖子方法。使用的formats-使用,每个情况的相应测试代码如下:
测试表提交了邮政方法:
测试JSON数据提交帖子方法:
测试文件上传发布方法:
从上面的代码中可以看出,各种请求方法的测试代码相似,并且仍然很容易掌握。接下来,了解一些高级MOCEMVC。
Spring向我们注入了我们之前使用的MOCEMVC。如果我们想自定义MockMVC,我们该怎么办?我们在这里正式提供帮助我们构建全局MOCKMVC,并可以执行全球情况的默认配置,定义一些公共操作,例如打印结果,主张响应代码,,说明响应代码,等有关特定实施方法,请参阅下面的代码示例:
此外,我提到@springboottest的使用将创建一个完整的应用程序上下文并加载所有bean。如果应用程序本身很大,则会导致测试类启动有关?
为了加速运行测试用例的起始速度,官员提供了特殊的注释,以确保只有Web层是初始化的,而不是整个应用程序的上下文,并且可以指定某个控制器以实现特定的角色控制器和依赖性初始化初始化。大大加速了测试用例的操作。
除了注释方法外,我们还可以使用API实施单个控制器的注入和测试。它也可以在它的帮助下实现。您可以参考以下代码:
应该注意的是,单元测试没有读取任何配置,并且更接近该控制器类的单元测试。
好吧,以上是Spring Boot程序如何在Web层测试中做好工作的所有介绍。可以看出,Web层的测试不是很复杂,并且相关API的可读性也很高。使用MOCKMVC测试底层并不是真正在Internet请求上访问Internet访问的过程,也不是它启动Web容器吗?实际上是为Servlet API的麦克风实现的底层。差异,如果您只编写一个简单的集成测试和单元测试来为自己编写Web层代码,则可以参考引入上一篇文章的方法。
最后,可以通过文章末尾的Web层测试给出的官方文档地址来进一步理解 - 相关和春季启动等深度内容。我希望本文的引入将有助于日常发展。在未来的good测试文章中,请继续关注。
作者:程序员