PHPUnit:测试POST请求

时间:2019-12-02 10:57:25

标签: php laravel phpunit

我想证明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请求?

1 个答案:

答案 0 :(得分:1)

对于重定向,您可以声明状态302(https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection

$response = $this->post('/product/store', [
      'name' => 'Hello'
    ])
    ->assertStatus(302);