我正在使用laravel进行单元测试,所以我调用了控制器函数,并且得到了一个像数组一样的响应
我对此一直有回应
return back()->with('success', 'Lots was generated')
和
return $this->lots_available;
测试给我以下答复:
有1个错误:
- Tests \ Feature \ LotTest :: test_lots Illuminate \ Validation \ ValidationException:给定的数据无效。
我不了解此响应的原因,我从测试开始
这是我的功能测试
public function test_lots()
{
$this->withoutExceptionHandling();
$product = factory(Product::class)->create([
'size' => 20
]);
$lots = factory(Lot::class, 10)->create([
'product_id' => $product->id,
]);
$admin = factory(User::class)->create([
'role_id' => 3
]);
$client_request = 500;
$this->actingAs($admin)
->post(route('lots.distribution'), [$product, $client_request])
->assertStatus(200);
}
这就是我所谓的方法
public function distribute(ProductRequest $product, $client_order)
{
$this->lots = $product->lots;
$this->client_order = $client_order;
$this->getLotAvailable();
return $this->lots_available;
}
答案 0 :(得分:0)
假设您的路线类似于Route::post('/distribute/{product}/{client_order}')
route('lots.distribution')
需要函数调用中的参数
route('lots.distribution', [$product, $client_request])
然后,您需要在ProductRequest
中发送通过规则的数据,否则将收到验证错误。如果您在发布后尝试使用dd(session('errors'))
,则可能会看到有关缺少字段的错误。
->post(
route('lots.distribution', [$product, $client_request]),
['title => 'unique_title', 'sap_id' => 'unique_id']
)
最后,在您的方法中,我假设请求ProductRequest与模型产品不同:
public function distribute(ProductRequest $request, Product $product, $client_order)
答案 1 :(得分:0)
将响应放入变量中,然后使用dd()
进行打印。
您可以在messages
方法中找到它。
为我工作。
dd($response);