【发布时间】:2019-09-19 12:04:23
【问题描述】:
我正在用 laravel 进行单元测试,所以我调用了控制器函数,我得到了一个数组的响应
我一直在回应这个
return back()->with('success', 'Lots was generated')
和
return $this->lots_available;
测试给了我这样的回应:
有 1 个错误:
- 测试\功能\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;
}
【问题讨论】:
-
你能告诉我们
ProductRequest里面的验证吗? -
顺便说一下
Console.log($client_order);这是javascript。验证成功后会报错。 -
@cbaconnier 这是验证类 ProductRequest 扩展 FormRequest { public function rules() { return [ 'title' => 'required|unique:products|max:255', 'sap_id' => '必需|独特:产品|最大:255']; } }
标签: php laravel unit-testing automated-tests