2015-07-20 114 views
2

下面這個簡單的控制器測試發出「GET」請求PostsController @ index動作:Laravel 5:控制器測試 - PHPUnit的返回綠色

<?php 

class PostsControllerTest extends TestCase { 

    public function testIndex() 
    { 
     $response = $this->action('GET', '[email protected]'); 

    } 
} 

在我的理解,如果索引方法不存在我控制器,當我在命令行中調用phpunit時,我不應該得到綠燈。

然而,我的控制器看起來是這樣的:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 

class PostsController extends Controller 
{ 
    /** 
    * Display a listing of the resource. 
    * 
    * @return Response 
    */ 
    // public function index() 
    // { 
    // // 
    // return 'Posts Index'; 
    //} 
} 

您可以清楚地看到索引方法被註釋掉了,我仍然得到這個:

**OK (1 test, 0 assertions)** 

有什麼建議?

回答

1

你沒有做出任何斷言。您的測試不檢查$response是否「OK」。

測試改成這樣:

public function testIndex() 
{ 
    $response = $this->action('GET', '[email protected]'); 
    $this->assertEquals(200, $response->status()); 
} 

這個測試斷言,頁報以200 status code,這意味着它是成功的。

您可以閱讀Laravel的測試here