You are on page 1of 22

Laravelで始めるテスト生活

@bmf_san
@Laravel JP Conference 2019
2019/02/16
自己紹介

@bmf_san

Software engineer
今日話すこと
• What?

• Laravelで機能テスト書くのはいいぞ!

• 簡単に始めやすい環境

• 分かりやすいAPI(テストメソッド)

• Who

• テストかいたことない人

• 書いた事ある人はこれから書こうとする人のために・・
機能テスト is 何?

• システムがユーザーからみた仕様通り動くか確認する

• 結合テストの一方式

• ブラウザでの手動テストに似ている

• →テスト書いたことない人でも取り組み易いはず
なぜLaravelで機能テストを始めるのか?

• 機能テストAPIが充実

• Illuminate\Foundation\Testing

• Github - laravel/browser-kit-testing

• 5.4くらいから別パッケージになってしまった

• 5.4∼ならLaravel Dusk使ったほうがよいかも
Laravelで機能テストを始める
• 環境構築(Laravel5.4∼)

• テスト用DBセットアップ

• config/database.php

• phpunit.xml

• .env

• composer require laravel/browser-kit-testing —dev

• 5.4~の場合
リポジトリ

• 雑に機能テストを体感できそうな環境つくっておい

• Github - bmf-san/laravel-test-handson
テストを書いてみる
• Github - bmf-san/laravel-test-handson

• ユーザー登録ができる

• ログインができる

• 記事の作成ができる

• 記事の編集ができる

• 記事の削除ができる

• etc …
ユーザー登録の機能テスト
/register

正しく入力して送信すると、/homeにリダイレクト
ユーザー登録の機能テスト
/home
ユーザー登録の機能のテスト
ログインの機能テスト
/login

正しく入力して送信すると、/homeにリダイレクト
ログインの機能テスト
/home
ログインの機能のテスト
記事作成の機能テスト
/post/create
ログインしていないとアクセスできないページ

正しく入力して送信すると、/postにリダイレクト
記事作成の機能テスト
/post
記事作成の機能テスト
その他のAPI

click リンクをクリックしときのリクエスト・レスポンスを検証できる

ラジオボタンまたはドロップダウンリストの項目を選択したときの
select
検証

check チェックボックスの項目を選択したときの検証

uncheck チェックボックスの項目を非選択にしたときの検証

attach ファイルインプットにファイルをアタッチしたときの検証
便利ツール

• Laravel TestTools

• Chrome extension

• https://chrome.google.com/webstore/detail/
laravel-testtools/
ddieaepnbjhgcbddafciempnibnfnakl
便利ツール
入力・操作すると→

←テストコードが自動で生成される
まとめ
• Laravelは機能テストが書きやすい

• 別パッケージ(browser-kit-testing)になったが、便利で分かりやすいAPIが用意されている

• browser-kit-testingを使わなくともある程度のAPIは本体に残っている

• 簡単なDOM検証くらいならできるはず

• 5.4∼ならDuskという選択もある

• 書きやすい機能テストから始めるとテストに慣れる(と思う)

• プログラムをより詳細にテストするコード(単体テストとか)が欲しくなってくる

• 自然と段階的に (デバッグとか繰り返していると)テストの書き方や必要性を体感する

• テストがわからなければまず機能テストを書いてみるのが良いかもしれない
おわり

You might also like