【发布时间】:2020-05-01 18:48:24
【问题描述】:
我有 laravel 规则验证,我想用一种方法和 dataProvider 使用 phpunit 测试它所有的规则
例如我有规则required|string|max:255我想测试requiredstring andmax:255`规则而不单独编写测试方法
但我只能为 required 规则执行此操作,我只想测试第二个规则,例如 digit_between 的身份字段,但 first_name 字段没有 digit_between 但是 string
- 这里是我的示例规则代码
{
return [
'identity_number' => 'required|digits_between:1,255|unique:borrowers',
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'birthdate' => 'required|date',
];
}
2.测试代码:
/**
* Test store validation.
*
* @return void
*
* @group user
* @dataProvider requiredStoreValidationProvider
*/
public function testStoreValidation($formInput, $formInputValue)
{
$response = $this->actingAs($this->user)
->post(route('borrower.store'), [
$formInput => $formInputValue,
]);
$response->assertSessionHasErrorsIn('validation', $formInput);
}
/**
* Required store data validation provider.
*
* @return \string[][]
*/
public function requiredStoreValidationProvider()
{
return [
['identity_number', ''],
['first_name', ''],
['last_name', ''],
['birthdate', ''],
];
}
【问题讨论】:
标签: php laravel validation testing phpunit