raining返信LaravelでPHPUnitを使用してテストする際の基本的な実施方法などをメモします。LaravelにはPHPUnitが標準で入ってます。インストールする必要はありません。どんなシステムでもテストは必要になってきますが、まずはPHPUnitでテストする際の基本的な操作方法などを記載します。testsディレクトリの構成まずはtestsディレクトリの構成についてです。最初は下記の構成になっているのですが、サンプルのテストファイルが用意されています。TestCase.php基本的には上記のファイル構成ですが、実際のディレクトリ構成と同じようにディレクトリを作成することも可能です。例としては下記のような感じになります。TestCase.phpその際は「phpunit.xml」の内容を変更します。</testsuites>上記の例では↓の部分を追加しています。</testsuite>これを記述することで「./tests」ディレクトリがテストの対象となります。テストファイルの作成テストファイルを作成する場合は下記のコマンドを実行します。すると「Feature」ディレクトリ内にテストファイルが作成されます。HogeTestまた、unitのテストを作成する場合は「–unit」をつけて下記を実行。--unit上記実行するとベースとなるファイルが作成されます。テスト実行コマンドから下記を実行することでテストを流すことができます。注意するのがテスト全体だと複数人で開発をしていた場合は他の方が書いたテストコードまで実行してしまう恐れがあります。ファイル名の指定だと指定した文字列がテストしたいファイル以外のファイル名にも存在する場合、そちらも実行してしまいます。上記で作成したテストファイルにtestから始まるメソッドを用意して、テストを記述します。}または、コメントで「@test」をつけることでメソッド名にtestをつけなくてもテストとして実行することが可能です。}今回はLaravelでPHPUnitを使用してテストする上で、基本的な実施方法などについて記載しました。テストはプログラムを作成するときは必ず必要になりますので、しっかりテストを書けるように理解しながら進めることが大事だと思います。DBなどが絡んでくる場合などは他にも設定した方がいいものなどありますが、また別の記事で記載したいと思います。raining返信Laravelのルーティングでは「Route::resource」で指定することがあります。「Route::resource」を指定するとCRUDのルーティングを1つの定義で行うことが可能になります。一つ一つルーティングの指定を書いてもいいのですが、場合によっては「Route::resource」で指定した方がソースコードもスッキリし、可読性が上がるかもしれません。不要なメソッドもあると思うので、その場合は「only」と「except」を使用し、不要なルーティングを制限することができます。今回は「Route::resource」を使用した時の「only」と「except」の使用方法についてメモします。Route::resourceの使い方Laravelのルーティングの指定は「routes」ディレクトリ内のファイルに記載します。※下記が例として「routes/web.php」に書いてる場合。'PhotoController');ルーティングの内容は下記のようになります。|+-----------+---------------------------+--------------------+------------+次のコマンドを実行すれば現在のルーティングを一覧で表示することができます。ターミナルからコンテナ内で下記を実行。route:list使わないメソッドに関してはメソッドを消しているとエラーが起きてしまうので、ルーティングを制限しておく必要があります。その際に「only」と「except」を使用します。「only」で指定した場合、記述したメソッドのみリクエストすることが可能になります。['index','show']]);上記の例では「index」と「show」のみ許可しています。「except」で指定した場合、記述したメソッド以外のリクエストが可能になります。除外したいメソッドを記述します。['edit','create']]);上記の例では「edit」と「create」以外のリクエストを許可している形になります。|+-----------+---------------------------+--------------------+------------+今回はLaravelのルーティングで「Route::resource」を使用した時の「only」と「except」の使用方法について記載しました。この辺りを理解しておくとルーティングの記述を綺麗にまとめることができると思います。method」のエラーが発生した時の対応方法をメモします。このエラーはstaticではないメソッドを呼び出すときに発生します。Laravelに限らずではありますが。method」エラーの説明と対応方法を記載します。実際のエラー内容としては、下記のようにエラーが出力されます。簡単にいえば「staticではないですよー」ってことですね。例で下記のようにコントローラーからモデルのメソッドを呼び出します。下記は「Hoge」モデルクラスの「getHoge」メソッドを呼び出しています。下記の場合はエラーになってしまいます。原因はfunctionに「static」が無いからです。}}なので「static」があればエラーにならず正常に動作します。上記のように「static」付ければ解決することはできますが、モデルを変更できない場合はコントローラー側で下記のように呼び出すとエラーとならずメソッドを呼び出すことができます。method」エラーを解消することができます。method」エラーが発生した時の対応方法について記載しました。以外と忘れてしまうことがあるのでメモします。