路由Laravel 8单元测试返回了无效的JSON



我是Laravel测试的新手,我在Laravel 8中工作,我想测试的函数是:

当我运行测试时,我得到了这个错误:

1) TestsUnitappTestHttpTestControllersTestOrderControllerTest::testStore
Invalid JSON was returned from the route.

谢谢你的帮助!

您有两个场景

  1. 在您的控制器中,您可以
return response()->json([
'order' => $newOrder,
'status' => ($request->doValidate) ? 'pend' : 'draft'
]);

并且您的测试用例将是相同的

  1. 在控制器中,您可以
return response()->json($newOrder);
// or
return $newOrder;

在您的测试用例中,您将执行

public function testStore()
{
Sanctum::actingAs($this->user, ['*']);
$response = $this->postJson(action('OrderController@store'), [
'doAssigned' => false,
'doValidate' => false,
]);
$response->assertJsonFragment([
'status' => 'draft'
]);
}