SpringBoot——在开发阶段对表现层进行测试

梦想不抛弃苦心追求的人,只要不停止追求,你们会沐浴在梦想的光辉之中。再美好的梦想与目标,再完美的计划和方案,如果不能尽快在行动中落实,最终只能是纸上谈兵,空想一番。只要瞄准了大方向,坚持不懈地做下去,才能够扫除挡在梦想前面的障碍,实现美好的人生蓝图。SpringBoot——在开发阶段对表现层进行测试,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

在开发阶段对表现层进行测试

之前在做测试的时候,我们对Dao层做了测试,对Service层做了测试,但是在测试表现层的时候,我们并不是在测试类中启动的Web端口,还是直接启动了引导类,并在浏览器中打开本地网址或者用PostMan进行的测试,但是我们现在想在启动测试类的时候就启动Web环境,这个需求要如何解决呢?

在启动测试类的时候启动Web环境

之前我们在介绍@SpringBootTest注解的时候提到过一个属性,属性名叫做WebEnvironment,这个属性就是控制启动测试类的时候是否启动Web环境,这个属性的属性值有四个:
在这里插入图片描述
NONE:表示不启动
MOCK:默认值,也是不启动
DEFINED_PORT:在默认的端口启动Web环境
RANDOM_PORT:在随机的端口启动Web环境
我们先看一下正常启动测试类的情况:
在这里插入图片描述
我们准备一个测试类,然后启动测试类,主要观察在控制台输出的内容:
在这里插入图片描述
控制台上的输出内容很少,并且很明显没有任何的和Web环境有关的内容,很明显我们的Web环境并没有启动,现在我们设置在默认端口上启动测试用例:
在这里插入图片描述
这次我们依然注意观察控制台上的输出内容,看和上次有什么不同
在这里插入图片描述
可以看到这输在这里插入图片描述
可以看到这次输出的日志内容多了很多,并且也带有端口号,说明我们的测试用例已经在Web端启动了。

模拟发送请求

在之前的操作中,我们已经开启了Web环境,现在要做的就是在测试类中的Web环境下发送请求,这里引入一个概念叫做虚拟请求,大概意思就是说我的这次请求并不是真实发生在浏览器中的,而是我为了测试而做的模拟请求,要发送虚拟请求,首先要做以下这几件事:
首先是准备一个发送请求的Controller:
在这里插入图片描述
然后开启发送虚拟请求的注解:
在这里插入图片描述
这个注解添加在测试注解下面,是一个类注解,表示在测试类中自动配置一个可以发送虚拟请求的对象
那么接下来,就是拿到这个发送虚拟请求的对象:
在这里插入图片描述
这个MockMvc对象不是我们自己配置的,是当我们在写完@AutoConfigureMockMvc注解之后,他自己帮我们配置好并放在Spring容器中的,我们可以通过自动装配的方式获取这个对象,还有一种方式,我们之前在学习Spring的时候介绍过,可以在处理器的形参上引入仅在此方法中可以使用的对象:
在这里插入图片描述
这两种方法使用哪一种都可以,只要能引入发送虚拟请求的对象即可,然后就是对象调用方法发送虚拟请求:
在这里插入图片描述
首先确定perfrom()方法是用来执行发送请求的,然后这个方法里面要一个参数,快速创建未知方法参数对象的方法就是先在方法参数的位置输入一个变量名,然后会报出异常,鼠标悬浮在异常的位置自动修复一场即可快速创建方法参数对象:
在这里插入图片描述
可以看到方法的参数最终创建出了一个RequestBuilder类型的对象,我们点进去这个对象看一下里面是什么:
在这里插入图片描述
可以看到这是一个接口,并且这个接口有五个实现类,我们最终使用的是他的实现类,也就是MockMvcRequestBuilder这个类:
在这里插入图片描述
这个类并不是new出来的,而是使用builder构造出来的,传入的参数就是你要发送请求的地址
这个地址,完整的地址是这样的

http://localhost:8080/text

但是我们在测试类中的测试环境已经帮我们自动填充上了前面的前缀,我们只需要填写处理器的地址就可以了。
最终我们启动这个测试类,看一下最终的输出结果;按照我们的预想,首先这个测试会启动Web环境,并且会发送请求到处理器,处理器方法会执行。现在我们直接启动看结果:
在这里插入图片描述
很好,很顺利地输出了我们再Controller中添加的内容和语句,这里要注意的是,他并不是会一直保留这个Web环境,而是发送一次请求,或者将测试类中的请求代码都执行完毕之后,这个临时的Web环境就会关闭,并不会一直保持端口的开启。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/153245.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!