构建请求
最后更新于:2022-04-02 00:33:25
# 说明
在TP单元测试扩展中,模拟发送请求可以有5种方法,其中四种是扩展中自带的,另外一种是由我们自己通过request构建一个请求。扩展中带的四中分别是:
1. visit:发起一个GET的请求,只需要传入URI即可
2. submitForm:
3. makeRequest:
4. makeRequestUsingForm:
# visit
visit方法只接受一个参数uri,在这个参数传入我们的请求路径,扩展便会帮助我们构建一个GET的请求。其在底层是使用方法makeRequest进行构建的。
例子:
`$this->visit('/index/index/index');`
# makeRequest
$method:传输的方法
$uri
$parameters = []:所带参数
$cookies = []
$files = []
`$this->makeRequest('GET','/index/index/getMethod/name/c7')`
> 注意:请不要使用$parameters进行传参和使用?key=value方式传参,在目前的5.x中,这两种方式都会出现问题。这是因为在CLI下,创建请求的时候$_GET不会被设置,而普通的URL方式在5.X版本又不支持,因此才会出现这个问题的。解决方法是在request::create中添加一行代码:$_GET=$params;但是这个会修改到源代码,因此还是希望大家暂停使用这两种方法,等待官方的解决方案。
> 当使用$parameters进行传参的时候,如果是使用官方封装的request对象来获得参数,程序能够正常运行。但是切记不可使用$_GET等等超全局变量。
# submitForm
submitForm是基于makeRequest的,也就是说当使用makeRequest返回的内容中存在Form的话,我们就可以通过submitForm处理这个Form。
因此,我们需要构建两个操作,一个用于返回一个含有form的页面,一个用于接受这个form的请求。
index控制器如下:
~~~