簡體   English   中英

單元測試 Laravel 中的視圖?

[英]Unit testing the views in laravel?

如何對返回視圖的控制器函數進行單元測試。 這是我的控制器功能

public function index(Request $request)
{
   $data = Data::all();
   return view('index',[
       'data' => $data
   ]);
}

這是測試代碼

public function testIndex()
{
   $response = $this->withoutMiddleware();

   $response = $this->get('/user');

   $response->assertSuccessful();
}

我試過這個

public function testIndex()
{
   $response = $this->withoutMiddleware();

   $response = $this->get('/user');

   $response = $this->assertContains('data', $response->content());

   $response->assertSuccessful();
}

這顯示錯誤

錯誤:在 null 上調用成員函數 assertSuccessful()

任何想法,如何為我的索引控制器功能編寫測試用例?

您在第一個斷言中重新分配了 $response。 沒有必要這樣做

我不知道 assertContains 會從我的腦海中返回什么,但我敢打賭它不是 $this。

老實說,我不知道為什么該示例讓您首先將任何內容分配給 $response,除了來自 HTTP 查詢的響應。

public function testIndex()
{
   $this->withoutMiddleware();
   $response = $this->get('/user');
   $this->assertContains('data', $response->content());
   $response->assertSuccessful();
}

你也可以使用

$response->assertSeeText('data');

https://laravel.com/docs/7.x/http-tests#assert-see-text

您可以使用此代碼

$this->get('/user')->assertViewHas('data');

暫無
暫無

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

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