仮想通貨ブログに専念するため、たまーに更新します!仮想通貨ブログはこちら!

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

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

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

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

  • 本記事の内容
  • PHPUnitでValidationのテストをする方法
  • 具体的な手順とソースコード
  • 本記事の執筆者
いずみん(@izumin_0401)

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

いずみん

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

プログラミングを学びたい方必見!

オンライン特化のプログラミングスクールなら「」が超おススメ!

副業としてプログラミングを学びたい方にもおすすめのスクールです!

  • 初心者が9割以上なので挫折せずに学べる!
  • 受講者に副業の仕事を1案件以上斡旋! ※条件あり
  • オンライン完結型なので、在宅でもお仕事可!
  • プロのメンターがサポートしてくれる!

キャリアカウンセリングメンター相談無料でできるのもおすすめポイントです!

目次

まずは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の勉強をしました!
非常に分かりやすいのでおすすめです!

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

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

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

稼ぐスキルを身に付けよう!!
SNSもフォローしてね!

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

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