2015-12-08 12 views
5

ルートLaravel 5のPHPUnit - 無効JSONは

Route::group(array('prefix' => 'api'), function() { 
    Route::resource('test', 'TestController', array('only' => array('index', 'store', 'destroy', 'show', 'update'))); 
}); 

コントローラ

public function store(Request $request) { 
    return response()->json(['status' => true]); 
} 

ユニットクラス

public function testBasicExample() { 
    $this->post('api/test')->seeJson(['status' => true]); 
} 

Pルートから返されましたHPUnit結果:

1)ExampleTest::testBasicExample

無効JSONは、ルートから戻されました。

おそらく例外がスローされましたか?誰もが問題を参照してください?

答えて

4

問題はCSRFトークンです。

あなたは可能性がありdisable the middlewareWithoutMiddlewareトレイト使用して:

<?php 

use Illuminate\Foundation\Testing\WithoutMiddleware; 

class ExampleTest extends TestCase 
{ 
    use WithoutMiddleware; 

    // 
} 

それとも、あなただけのいくつかのテストメソッドのためのミドルウェアを無効にしたい場合は、あなたがテストメソッド内からwithoutMiddlewareメソッドを呼び出すことができます:

<?php 

class ExampleTest extends TestCase 
{ 
    /** 
    * A basic functional test example. 
    * 
    * @return void 
    */ 
    public function testBasicExample() 
    { 
     $this->withoutMiddleware(); 

     $this->visit('/') 
      ->see('Laravel 5'); 
    } 
} 
+0

ありがとうございます。作品:D – Cas

+3

そこにスローされた例外を表示する方法はありますか? – whiterook6

+1

例外を表示するには $ this-> json( 'POST'、 'api/test'); dd($ this-> response-> getContent()); – Aine