2013-10-22 106 views
0

我正在使用一個函數來測試每個頁面中數組的存在。我正在使用laravel的功能assertViewHas。如果我有一個測試這個數組存在的每個頁面的函數,那就沒問題了,但是這似乎浪費時間,因爲我可能只有一個foreach運行每個頁面的測試。但是,如果其中一個頁面失敗了,我不知道它是哪個,phpunit只會說測試失敗了。當單元測試失敗時,讓laravel&phpunit發送消息

那麼,有沒有在命令行中運行phpunit當失敗的錯誤寫入當前$page的方法嗎?

....private $guest_pages=array('/','login','signup'); 

.... 
    public function testGuestViewsHaveContent() 
{ 
    foreach ($this->guest_pages as $page) { 
     $response = $this->call('GET', $page); 
     $this->assertViewHas('content'); 
    } 
} 

回答

0

您試過回覆$_SERVER['SCRIPT_NAME']

編輯

咄......好了,這不回答你的問題,我沒有先了解。 因此,assertViewHas來自Laravel的擴展PHPUnit vendor\laravel\Illuminate\Foundation\Testing\TestCase.php並基本上檢查它是否是一個視圖實例,如果它是一個數組,並且只是$this->assertEquals爲每個值。

assertEquals可以有一個自定義消息作爲第三個參數,所以你可以做的就是修改您的測試,以類似的方式不使用assertViewhasassertEqualsassertViewHas(擴展PHPUnit的,不Laravel的TestCase),並提供您的自定義消息。