日々更新中です!

【Laravel】PHPUnitでValidationのテストをする方法!

  • URLをコピーしました!
悩んでいる男の子

PHPUnitでValidationのテストをしたいんだけど、どうしたらいいのかな?
具体的なソースコードもあると嬉しいな。

こんな悩みを解決します。

  • 本記事の内容
  • PHPUnitでValidationのテストをする方法
  • 具体的な手順とソースコード
  • 本記事の執筆者
プロフィール
いずみん(どこの写真だよ)
  • 元エンジニア(歴7年)、資格保有数約20個(IT系以外も含む)
  • 物販月利50万円⇒脱サラ
  • 物販、システム開発、アフィリエイト、プログラミング、投資をやっています。
  • 物販は彼女と楽しみながらやっています!

今回は、LaravelのPHPUnitでValidationのテストをする方法を解説します。

いずみん

すぐ読み終わるので、是非最後まで読んでみてください!

目次

まずはRequestsファイルを作成

<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class UserRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return false;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'username' => 'required|max:100',
        ];
    }
}

Requestsファイルを作成しました。

ユーザ名という項目に対して、「必須チェック」と「最大文字数チェック」のバリデーションが付いています。

ユニットテスト用ファイルの作成

<?php

namespace Tests\Unit\Requests;

use App\Http\Requests\UserRequest;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Validator;

class UserRequestTest extends TestCase
{
    /**
     * バリデーションテスト
     *
     * @param 項目名
     * @param 値
     * @param 期待値
     *
     * @dataProvider dataprovider
     */
    public function testBasicTest(string $item, string $data, bool $expect): void
    {
        $request  = new UserRequest();
        $rules    = $request->rules();
        $dataList = [$item => $data];

        $validator = Validator::make($dataList, $rules);
        $result    = $validator->passes();

        $this->assertEquals($expect, $result);
    }

    /**
     * データプロバイダ
     *
     * @return データプロバイダ
     *
     * @dataProvider dataprovider
     */
    public function dataprovider(): array
    {
        return [
            'expect'   => ['username', 'ユーザ名', true],
            'required' => ['username', null, false],
            'required' => ['username', '', false],
            'max'      => ['username', str_repeat('a', 101), false],
            'max'      => ['username', str_repeat('a', 100), true],
        ];
    }
}

ユニットテスト用ファイルです。

PHPUnitを実行

phpunit

テストを実行して問題なければOKです!

まとめ

今回は、LaravelのPHPUnitでValidationのテストをする方法を解説しました。

バリデーションのテストも意外と簡単でしたね。

ではまた!

  • おすすめ本はこちら!
いずみん

僕は↑の本でLaravelの勉強をしました!
非常に分かりやすいのでおすすめです!

  • 自由な生き方がしたいなら!

自由な生き方をするためには、稼ぐスキルを身に付けなければなりません。

当サイト「リバトレ」では稼ぐスキルに関する情報を日々発信しているので、興味のあるものから見て頂ければ嬉しいです。

この記事が気に入ったら
いいね または フォローしてね!

シェアするんやで!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

いずみんのアバター いずみん 自由大好きおじ

自由大好きおじ | 物販月利50万達成⇨脱サラ | 物販(アパレルせどり)・アフィリエイト・プログラミング・投資に関する情報を発信中 | 元エンジニア | 保有資格約20個

コメント

コメントする

目次
閉じる