読み込みが終了しない場合は、しばらく待つか、リロードを行なってください。
If loading does not finish, wait for a while or reload.
エンジニア向けの情報を発信するブログです。
どなたでも発信できます。
お好きに利用していただれば幸いです。
laravel 6.x
📁 root/app/Http/Requests/ArticleRequest.php
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ArticleRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => [
'required',
'string',
],
];
}
public function withValidator($validator)// 👈 これをテストしたい
{
$validator->after(function ($validator) {
if (empty($validator->failed())) {
$name = $this->get('name');
if ($name !== 'おすおす') {// 👈 おすおすじゃなかったらバリデートする
$validator->errors()->add('name', '(゚∀゚ )');
}
}
});
}
}
📁 root/tests/Feature/Http/Requests/ArticleRequestTest.php
<?php
namespace Tests\Feature\Http\Requests;
use App\Http\Requests\ArticleRequest;
use Illuminate\Support\Facades\Validator;
use Tests\TestCase;
class ArticleRequestTest extends TestCase
{
/**
* @group RequestTest
* @test
* @return void
*/
public function test()
{
$params = [
'name' => 'begien',
];
$request = new ArticleRequest();// 👈 テストしたいFormRequest
$rules = $request->rules();
$messages = $request->messages();
$validator = Validator::make($params, $rules, $messages);
$this->assertTrue(!$validator->fails());// 👈 ここではrulesが検証されるので通過するはず
$request->withValidator($validator);// 👈 withValidatorに$validatorを投げる
$this->assertTrue($validator->fails());// 👈 ここでwithValidator関数の$validator->after関数が実行されるので'おすおす'ではないので検証失敗するはず
$errors = $validator->errors();
$name_errors = $errors->get('name');
$this->assertTrue(in_array('(゚∀゚ )', $name_errors, true));// 👈 設定されたエラーメッセージがあるはず
}
}
$ vendor/bin/phpunit --group RequestTest