Laravel 5 PHPUnit - 从路由返回了无效的 JSON
Posted
技术标签:
【中文标题】Laravel 5 PHPUnit - 从路由返回了无效的 JSON【英文标题】:Laravel 5 PHPUnit - Invalid JSON was returned from the route 【发布时间】:2016-03-13 05:13:13 【问题描述】:路线
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]);
phpUnit 结果:
1) ExampleTest::testBasicExample
路由返回了无效的 JSON。
也许抛出了异常?有人看到问题了吗?
【问题讨论】:
【参考方案1】:问题在于 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');
【讨论】:
有没有办法查看抛出的异常? 查看异常: $this->json('POST', 'api/test'); dd($this->response->getContent()); 流明中没有中间件。有人知道怎么安装吗? 对于流明,use Laravel\Lumen\Testing\WithoutMiddleware;
@KirenSiva以上是关于Laravel 5 PHPUnit - 从路由返回了无效的 JSON的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 路由仅在 phpunit 测试期间返回 302 而不是 404 响应
如何在 laravel 5.5 中使用 phpunit 测试中间件?
如何创建仅用于测试的 Laravel 路由(phpunit)?