Laravelでの機能テストの始め方雑メモ

概要

Laravelでの機能テストの始め方と簡単な使い方について紹介する。 入門レベルに限るのでより実践的な内容については触れない。 ※LTの元ネタ程度でメモくらいの内容。

対象

テストを書いたことがない人向け。

テストを書いたことがなくても機能テストであればアプリケーションの仕様さえわかっていれば比較的に誰にでも楽に何を書くのかわかりやすいと思う。

特にLaravelは機能テストで使える便利なAPIやツールが充実しているので、テストに慣れていなくともテストに取り組みやすいはず。

環境

  • Docker
  • Laravel5.7
  • MySQL

準備

雑に環境を用意しておいた。

github - bmf-san/laravel-test-handson

READMEの手順どおりコマンドを実行すればDocker上でLaravelの環境がセットアップできる。

テストを実行できる環境の準備として、テスト用のdbを用意し、アプリケーション側ではphpunit.xml、config/database.phpをいじった。

機能テストで使う便利なAPIな使いたいのでgithub - laravel/browser-kit-testingを導入している。

こちらはLaravel5.3まではLaravel本体に組み込まれていたものだったが、5.4くらいから別パッケージになってしまったらしい。

Laravel5.3以降からキャッチアップしていなかったので、今回5.7を触ってから気づいた・・・

大した問題ではないが、別パッケージを導入しなくてもすぐに始められる!という売り文句がいえなくなってしまった、、

テストを始める

実際のコードはここに置いてあるので一部を紹介する。 

github - laravel/browser-kit-testing

記事を新規作成する画面があったとする。

ルーティングがこんな感じ。

するとこんな感じの直感的な機能テストがかける。

所感

LTのネタメモなのでものすごい雑。

参考