2015-12-08 40 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令牌

您可以通過使用WithoutMiddleware特性有可能disable the middleware

<?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