【勉強会レポート】PHPConf2018-2

前回に引き続き、レポートとしてまとめていきます!
「LaravelでTDDを体験しよう」です。

「そもそもTDDって何?」という方、大丈夫です。
私も今回このセッションを聞いて実践してみたのが初めてのTDDですので、記事を参考にしつつ、実践してもらえたらと思います!

ちなみにセッションでは、TDDについて簡単に説明されていました。
・まずはテストを書く
・テストが失敗することを確認したら、とにかく素早く実装
・テストを成功させる
このプロセスの繰り返しで、これにより開発のリズムが作られ、効率よく進めていけるそうです。

さらに詳しく知りたい方は、下記の書籍がオススメ書籍として紹介されていましたので、
ぜひ見て勉強してみてください。(私も詳しくはないので本書籍で勉強中です)

テスト駆動開発:
https://www.amazon.co.jp/dp/4274217884/ref=cm_sw_em_r_mt_dp_U_LyBkCbS0CAVPK


さて本題のLaravelでのTDDですが、セッションでは実際の進め方を実演しつつ、説明されていましたので、セッションを聞いて実際にどう環境構築をしていったかを書いていきます。
※セッションではPHP Stormを使うことを前提とした説明でしたが、私用の環境にはないため、PHP Stormなしです。
※PHPStromをお使いの方は「Laravel plugin」が便利だそうなので入れてみてください。

[0.PHPの環境の確認とバージョンアップ]

2018年12月現在、最新のLaravelのバージョン(5.7)で必要なのは、PHP 7.1.3以上です。
MacBookPro2018でデフォルトで入っていたPHPでは足りなかったため、
特にPHPのバージョンアップ等を行なっていない場合は必要となります。

[1.composerとLaravelインストール]


上記実施後、ローカルホストの8000番にアクセスしてLaravelのトップページが出ればOKです。
http://127.0.0.1:8000

[2.テストを書いてみる]

Laravelのテストには2種類のディレクトリがあります。(下記キャプションが該当するディレクトリです)
Unitが小規模(1メソッド単位)のテストFeatureはいくつかのオブジェクトを使用するテスト(APIが叩かれてHTTPステータス返却するまでの一連の処理)という区分けがされているそうです。
公式ドキュメント:https://laravel.com/docs/5.7/testing#introduction

今回はFeatureのテストを書いてみます。
testというページを追加し、実装していくことを想定して、下記のように書きました。
現在はまだtestというページ(ルーティングもなし)状態ですので、404が返ってくるテストを書いてみます。
※参考のため元のコードはコメントアウト

Featrueのテストを実行するときは下記のコマンドを叩けばOKです。
vendor/bin/phpunit tests/Feature/ExampleTest.php

ここからIndexを200が返ってくるテストを書き、テストを書きながら実装を進めれば、本格的にサイトを作ることができます。

Visual Studio codeでやりましたが、特に問題なくできました。また、「Laravel Extension Pack」が便利でした。
環境構築が苦手な方はLaravelを動かすまでで苦戦するかもしれませんが、それ以外はLaravelさえ入ってしまえば簡単です。

DBアクセスありのテストも簡単にできるそうなので、
試す時間ができたら、実際にやってみた内容を書いていきたいと思います。
(RefreshDatabaseというメソッドが有能らしいのでそれを体感したいです)

ここまで読んでいただきありがとうございました!
コメントはご自由にどうぞ〜

あわせて読みたい

コメントを残す

メールアドレスが公開されることはありません。