Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPUnit:如何模拟HTTP请求?_Php_Unit Testing_Mocking_Phpunit - Fatal编程技术网

PHPUnit:如何模拟HTTP请求?

PHPUnit:如何模拟HTTP请求?,php,unit-testing,mocking,phpunit,Php,Unit Testing,Mocking,Phpunit,如何模拟HTTP请求以编写有关数据或类似内容的测试 public function serve_request() { // Check request method if ( $_SERVER['REQUEST_METHOD'] !== 'GET' ) { $this->send_response( 405, 'Invalid method: ' . $_SERVER['REQUEST_METHOD'] ); die; }

如何模拟HTTP请求以编写有关数据或类似内容的测试

public function serve_request() {

    // Check request method
    if ( $_SERVER['REQUEST_METHOD'] !== 'GET' ) {

        $this->send_response( 405, 'Invalid method: ' . $_SERVER['REQUEST_METHOD'] );
        die;

    }
例如,我应该如何测试请求方法? 我困惑了一段时间。我还试图卷曲HTTP请求,但无法访问数据。
欢迎任何建议。

在测试中,您可以直接将$\u服务器修改为不同的值。这样你就可以测试不同的值了。因此,在执行之前,您可以在测试中执行
$\u服务器['REQUEST\u METHOD']='foo'


但是,由于此函数中有
die
,这将停止phpunit的执行。为了测试这部分功能,需要将
die
命令移动到其他位置。由于phpunit使这部分代码不稳定。

我知道我可以直接修改$\u服务器值,但问题是我无法测试数据库数据。也许,我需要模拟HTTP请求。什么数据库数据?为此,您将模拟db连接,以便可以控制它。但这是另一个问题。