00:00
好。我们这个相当于这个分页查询,写完了以后呢,啊,我们不着急来到页面来进行测试使用,我们先应该做一个单元测试,测一下我们页面要取得这些数据,比如我们给请求预中放的这些数据,哎,是不是都对的,哎,等一下我们都测成以后,哎,我们再哎,直接来到页面,把页面的显示效果一气呵成那行。那这个单元测试,有的同学就说了,那这个我还这测请求的单元测试咋写啊,其实我们这个spring啊,Test,我们spring的单元测试模块,它能模拟发送请求来帮我们拿到啊处理以后的这些数据,哎,我们来看对不对。那我们呢,我们就来写一个咱们这个专门来测MVC的。好在这里边呢,我们来使用。使用spring测试。模块提供的。测试请求功能。
01:01
哎,咱们这个测试,我们这个测试咱们这个c rud请求的。正确性。啊,那么呢,我们这个测试怎么测呢?哎,其实跟我们之前用的这个spring单元测试这是基本一样的,这两个都先得有好把这两个先复制过来,这个类测试我们是用spring单元测试的这个驱动来做,那么呢,它加载配置文件,那这一块的只有spring的这个配置文件是不够的,那再来加上那咱们这个spring mvc的,而spring mvc的配置文件呢,我们是在src慢下web APP web,咱们这所以说呢,就不写class pass了啊,它直接在文件路径下fail,然后呢,我们把咱们这个路径拿过来,它在src下的。Man。杀的咱们这web。
02:00
下边的web音符。哎,下边的咱们。就是它那么呢,这个写完了以后,那么它怎么就能测请求呢?啊,咱们spring MV中有一个叫Mo mvc,哎,这Mo单词呢,翻译过来就是虚假的意思,哎,它就是一个虚拟的MVC,哎它呢可以啊,虚拟咱们这个MVC请求。哎,然后呢,获取到咱们这个处理结果,那我们就能看咱们这个结果的正确性,那这个MVC请求要能用,我们需要一个简单的初始化比呢,我们叫in mvc。MOC这MVC呢,需要被创建出来才能用,这MVC怎么能被创建出来呢?它就需要一个叫Mo mvc。Wec build,哎,这个builders就它有一个方法叫web application contest setup,就是它它呢传入一个大家来看啊,传入的呢,是一个web application contextest。
03:08
所以呢,它是传入死spring mvc的LC容器。哎,就是它这一块呢,相当于是传入咱们这个。Support。MVC啊,咱们这个IC,比如说呢,这个要传的话呢,啊,我们其实是可以owa的at owa自动装配的,但这个O只能owa loc容器里边的OC容器自体,怎么owa呢?我们还需要一个注解,我要能获取到它,我们需要一个叫web。Application confi有了这个注解以后呢,啊,我们呢,就能把我们这个啊BLC容器也能拿过来,拿过来以后呢,我们传进来调样,用这个build的方法,诶你看它就能返回一个Mo mvc。
04:00
这个慕MVC就能帮我们来模拟我们MVC请求发送,当然我们每次要用,那么这个方法都要初始化一下就备放好,每次要用呢,我们诶备我们是不是写错了啊,我们是这个解unit的这个备啊,别写成这个SP接的,把这个SSP的这个备。删掉。好,这里边没引入吧,好没引入的话呢,我们就用咱们这节里头它配方好,然后呢,我们来看。我们来编写咱们这个测试分页的方法,Test。好。那么呢,这一块怎么用呢?我们这个慕MVC它有一个方法叫点perform,诶这个perform里边呢,就是模拟我们去发送请求,它需要一个request builder,而这个request builder呢,啊,我们使用这个叫Mo mvc。
05:00
哎,Request builders,哎,我们拿拿它,它呢帮我们来创建点。它接下来我们要发请求,那发get请求,大家就写get,发delete请求就发调用delete方法来发送post put,你看都有各式各样的请来发一个get请求,我们的uri地址,诶就是我们当前项目下emps,这是我们发的这个请求,而请求我们要带参数,怎么带呢?继续调用它的点来有一个。啊,P方法,这个方法里边呢,我们传入name value,这呢就能带,诶带咱们一个减值,对我们要带多个减值,对呢,就传这个map,好,我们现在只带一个平。好,那么我带了一个number,我现在要第一数据,那么这一块呢,我们要完了以后。我们来看啊,这个P好还是要string,第二个还是要string好,我们要第一页数据,我们这一块呢,整个模拟完了以后,哎调再在它外边调用一个方法叫按return,诶我们来拿到返回值。
06:07
好,把该抛的异常我们抛出去。比如说呢,这一块我们通过模拟一个请求,并拿到它的返回值,诶这一块呢,就是模拟。请求拿到返回值。好,我们这个返回值里边呢,我们就可以进行校验,因为我们这个请求成功以后呢。功以后咱们这个啊,我们我们会在请求狱中,请求狱中会有。会有什么呢?我们来到我们这个controller。啊,请求域中呢,我们会放一个配置英符,可以在页面进行展示的。请求句中会有配置音放,哎,我们可以取出配置音放来,来验证它里边的数据是否正确。取出咱们这个孩子,英方进行验证。好,我们的怎么办呢?Result,哎,这result有一个方法我们来看啊,它能啊获取到,比如get request,能拿到请求对象,也能拿到响应对象,包括呢,就我们整个方法调用完,它会返回到model and用对象,那么呢,我们就以请求为例,我拿到请求对象,我从请求对象中,我试着从请求域中拿配置应符,看能不能拿出来。
07:24
只要这一块get attribute能拿出来。那么我们这个页面那就没什么问题,好拿到咱们这个配置,这是一个object,我们把它呢,转成我们这个配置对象。好,我们来转换过来。这个配置英方好强转过来,那么呢,我们就来看拿到的这个数据正确不正确,我们来验证一下,比如呢,我们当前第几页当前页码。当前页码,我们可以从这个配置英镑中拿到值的。就叫平安。
08:00
好,我们直接打印点get,咱们这个有一个叫page number,这就是我们当前页码,我们可以再来打印一下总总页码。我们来看拿到这些信息都对不对,点get有一个叫PAGE4拿到总页码,哎,我们可以再拿一下总记录数,我们就拿上这几条东西吧,总记录数。总结录数。Get,哎,我们有一个叫total,哎,这是我们这个总记录数,我们将要在页面展示的,你看啊,当前页码,总页码,总记录数,以及连续显示的页码,我们都拿出来。页面。需要连续连续显示的咱们这个页码。这个页码呢?哎,我们需要pi.get有一个叫na get page numbers,把它拿过来,我们来便利的取出这些页码。
09:05
好,我们来打印上每一个。我们要显示的这个页码,哎页空格加上咱们这个,哎,我们就不print了,Print好比如说呢,我们拿到了咱们这个封页信息,我们也可以获取,获取咱们这个员工数据。我出去。因为我们这个controller,我们来点进来,我们把查到的员工数据是包装在咱们这个拍英里边了,所以说呢,我们在这儿也能拿得到,那么怎么拿呢,我们来到。Mvc test里边。好,我们这个PI它有一个方法叫get list,诶,这就能拿到我们的员工数据。哎,我们员工呢是一个list,这个list呢,我们可以便利,因为我们的员工呢,是一个employee的list,所以说我直接强着。好,拿过来,好,我来遍历第一页要的员工数据,我来输出。
10:02
我们就来输出啊员工信息,我们把他的这个ID打印一下。加employee.get。PID再来打印一下他的这个姓名。Name。来打印一下,我们就叫employee。第二,Get咱们这个NP内,好,我们来测试一下,如果呢,这个请求我们就这么模拟出来了。来运行这个单元测试,我们测试出来。走,诶这里呢,报了一个错,我们来看一下啊,他说no class DeFine,艾若说找Java X so session cookie,哎,这个错误呢,它就是找到我们包下了一个类。那么呢,为什么会出现这个错误啊,这是因为我们这个四。咱们这个测试的时候时候,咱们这个呢,需要咱们这个。
11:06
咱们这个3.0。到咱们这个支持我们这一块呢,写的这个sol来看咱们这个po文件啊。我们再给项目中引入的so呢,我们还是2.5好,所以说呢,把这个依赖换一下就行了,我们来到咱们这个里边来搜索so啊,找到它的SOAPI,好我们来看啊,我们之前是进的这个,我们来进这个啊,这个里边有高版本的,好你看啊,这3.0.1行,我们来把它点进来,我们来导入SOAPI就是这个。啊把它导进来,那么呢,我们之前的这个我们就不用了。同样我们这个API。也是provide。的级别的,那么我们这个呢,我们就不用了。好,我们用3.0的这个API,好,我们让它下载好,OK,然后呢,我们再来测试走。
12:05
诶,现在应该是行了好行了行了,那么呢,我们这个当前页码第一页,哎,总页码201页,有11001条记录,诶连续要显示的页码一到五,我们这个员工的ID什么都有,诶12345,哎没问题啊,我们来看第二个第二页的数据,我在这进再进行测试,我改一下发请求,我带的配置number,诶我不是一了,我是第五页。第五页我看他连续显示的页码走。我们来看好当前页码第五页,呃,201和连续显示的页码五在中间,34567好也没问题,所以说呢,我们这个页面要显示的这些信息,我们现在发请求查出来也都能拿得到了,包括我们这个员工数据都行了,我们接下来就来把这个页面写好,显示出来就可以了,那么这个测试呢,我们就做完了,大家在下边呢,把这个测试,也就说我们这个spring给我们提供的能虚拟咱们这个请求的,这个还是挺好用的。
我来说两句