单元测试 Laravel 的 FormRequest
2022-08-30 14:00:14
我正在尝试对各种自定义输入进行单元测试。我发现的解决方案是:FormRequest
建议使用该方法并使用预期值断言 (链接到答案)。这是矫枉过正,因为它会直接依赖于路由和控制器。
$this->call(…)
response
泰勒的测试,来自 Laravel 框架,在 .那里有很多嘲笑和开销。
tests/Foundation/FoundationFormRequestTest.php
我正在寻找一种解决方案,我可以在其中根据规则对单个字段输入进行单元测试(独立于同一请求中的其他字段)。
示例表单请求:
public function rules()
{
return [
'first_name' => 'required|between:2,50|alpha',
'last_name' => 'required|between:2,50|alpha',
'email' => 'required|email|unique:users,email',
'username' => 'required|between:6,50|alpha_num|unique:users,username',
'password' => 'required|between:8,50|alpha_num|confirmed',
];
}
所需测试:
public function testFirstNameField()
{
// assertFalse, required
// ...
// assertTrue, required
// ...
// assertFalse, between
// ...
}
public function testLastNameField()
{
// ...
}
如何单独和单独地对每个字段的每个验证规则进行单元测试(断言)?