PHPUnit:如何提交原始数据以发布请求链接以在Lumen中进行测试?

问题描述 投票:0回答:1

我正在使用Lumen随附的默认PHPUnit。虽然我可以对链接创建模拟后调用,但无法找到向其提供原始数据的方法。

当前,要模拟official document中的JSON输入,我可以:

     $this->json('POST', '/user', ['name' => 'Sally'])
         ->seeJson([
            'created' => true,
         ]);

或者,如果我想要简单的表单输入,我可以:

    $this->post('/user', ['name' => 'Sally'])
         ->seeJsonEquals([
            'created' => true,
         ]);

有没有一种方法可以将原始内容插入到发布请求中? (或者至少是一个带有XML输入的请求?这是一个从微信接收回调的服务器,在这里,我们别无选择,只能被迫使用XML作为微信想要使用的。)

php laravel unit-testing phpunit lumen
1个回答
0
投票

documentation中所述,如果要创建自定义HTTP请求,可以使用call方法:

如果您想向应用程序中发送自定义HTTP请求,并获取完整的Illuminate \ Http \ Response对象,您可以使用该调用方法:

public function testApplication()
{
    $response = $this->call('GET', '/');

    $this->assertEquals(200, $response->status());
}

这里是call方法:

public function call($method, $uri, $parameters = [], $cookies = [], $files = [], $server = [], $content = null)

因此,在您的情况下,将是这样的:

$this->call('POST', '/user', [], [], [], ['Content-Type' => 'text/xml; charset=UTF8'], $xml);
© www.soinside.com 2019 - 2024. All rights reserved.