[英]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.