簡體   English   中英

PHPUnit:如何提交原始數據以發布請求鏈接以在 Lumen 中進行測試?

[英]PHPUnit: how to submit raw data to post request linking for testing in Lumen?

我正在使用 Lumen 附帶的默認 PHPUnit。 雖然我能夠創建一個對我的鏈接的模擬帖子調用,但我無法找到一種方法來向它提供原始數據。

目前,為了模擬 JSON 輸入,從官方文檔,我可以:

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

或者,如果我想要簡單的表單輸入,我可以:

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

有沒有辦法可以將原始正文內容插入到發布請求中? (或者至少是一個帶有XML輸入的請求?這是一個接收微信回調的服務器,我們別無選擇,只能像微信一樣使用XML。)

文檔中所述,如果要創建自定義 HTTP 請求,可以使用call方法:

如果你想在你的應用程序中創建一個自定義的 HTTP 請求並獲得完整的 Illuminate\\Http\\Response 對象,你可以使用 call 方法:

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

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

這是調用方法:

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

所以在你的情況下,它會是這樣的:

$this->call('POST', '/user', [], [], [], ['Content-Type' => 'text/xml; charset=UTF8'], $xml);

要訪問控制器中的數據,您可以使用以下命令:

use Illuminate\Http\Request;

public function store(Request $request)
{
    $xml = $request->getContent();
    // Or you can use the global request helper
    $xml = request()->getContent();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM