2015-12-08 28 views
5

Yollarılaravel 5 PHPUnit - Geçersiz JSON rotadan

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

Kontrolör

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

Birim Sınıf

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

P iade edildi HPUnit Sonuç:

1) ExampleTest::testBasicExample

Geçersiz JSON yol döndürüldü.

Belki de bir istisna atılmış olabilir? Problemi gören var mı?

cevap

4

Sorun, CSRF Token'dur.

Sen WithoutMiddleware özelliği kullanarak disable the middleware olabilir: Eğer test yöntemlerinin içinden withoutMiddleware yöntemini çağırabilir sadece birkaç deney yöntemleri için ara katman devre dışı bırakmak istiyorsanız,

<?php 

use Illuminate\Foundation\Testing\WithoutMiddleware; 

class ExampleTest extends TestCase 
{ 
    use WithoutMiddleware; 

    // 
} 

Veya:

<?php 

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

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

Ahh teşekkür ederim. çalışır: D – Cas

+3

atılan istisna görmek için bir yolu var mı? – whiterook6

+1

İstisnai görmek için: $ this-> json ('POST', 'api/test'); dd ($ this-> response-> getContent()); – Aine