PHPUnit:如何模拟HTTP请求?

时间:2017-12-15 08:36:55

标签: php unit-testing mocking phpunit

如何模拟HTTP请求以便像这样写一些关于数据或STH的测试?

public function serve_request() {

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

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

    }

例如,我应该如何测试请求方法? 我已经困惑了一段时间。我也试图卷曲HTTP请求,但我无法访问数据。 任何提议都受到欢迎。

1 个答案:

答案 0 :(得分:0)

在测试中,您可以直接将$ _SERVER修改为不同的值。那么你就可以测试不同的值了。因此,您可以在执行前在测试中执行$_SERVER['REQUEST_METHOD'] = 'foo'

但是因为你在这个函数中有die,这将停止执行phpunit。为了测试函数的这一部分,需要将die命令移动到其他位置。因为它使用phpunit呈现代码的一部分。