PHPUnit:测试 POST 请求
Posted
技术标签:
【中文标题】PHPUnit:测试 POST 请求【英文标题】:PHPUnit: testing POST request 【发布时间】:2020-03-26 23:31:50 【问题描述】:我想测试 POST 请求。我的控制器的方法如下所示:
public function store(Request $request)
$this->Validate($request, [
'name' => 'required|string|min:5'
]);
$product = Product::create([
'name' => $request->name
]);
return redirect()->back();
所以,我写了这个简单的测试,但我有一个错误,因为它收到了 302 代码:
$response = $this->post('/product/store', [
'name' => 'Hello'
])
->assertStatus(201);
我认为这个问题是因为我在存储数据后重定向页面。如何测试这个 POST 请求?
【问题讨论】:
声明正确的状态 这能回答你的问题吗? Laravel - Testing what happens after a redirect 【参考方案1】:对于重定向,您可以断言状态为 302 (https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection)
$response = $this->post('/product/store', [
'name' => 'Hello'
])
->assertStatus(302);
【讨论】:
以上是关于PHPUnit:测试 POST 请求的主要内容,如果未能解决你的问题,请参考以下文章
接口自动化测试系列之PHPUnit-POST请求接口测试方法
接口自动化测试系列之PHPUnit-POST请求接口测试方法
带有 JSON 请求的 Laravel/phpunit 测试丢失了重要的请求细节