2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LaravelでTDDを始めよう

Posted at

LaravelでのUnitTestを始めよう

TestUnitを始める上で勢いで始めないように設計しましょう。

・基本的に読むべきこと
https://phpunit.readthedocs.io/ja/latest/
https://readouble.com/laravel/5.5/ja/testing.html

アンチパターンとベストプラクティス
https://www.ryuzee.com/contents/blog/3982

  1. テストの中で何もテストしていない
    書きかけの場合は、テストに未完成の印をつけるなどしましょう
    https://phpunit.readthedocs.io/ja/latest/incomplete-and-skipped-tests.html

  2. 1つのテストメソッドの中で色々テストし過ぎている

  3. 引数に真にしたい条件を与えてなんでもassertTrueでチェックしている
    @dependsアノテーションを使ってテストの実行順序を制御しつつ分割を行うべきです。

  4. テストデータのパターンが複数あるのを理由に1つのテストの中で順番に検証する
    引数は検証対象の値やオブジェクトであるべきで、テストの意図を伝わりやすくすべきです。

  5. テストが分類されていない。適切なフォルダ構成になっていない
    解決策は適切にフォルダに分けて配置したり、テストスイートをつくったり、@groupアノテーションを使ってテストを分類します。

LaravelでPhpUnitを使う
LaravelでPHPUnitを使用する際、デフォルトの状態であればtests/TestCase.phpが作成されており、全てのテストクラスはこれを継承してテストを行います。

参考:https://memorandumrail.com/laravel-phpunit/
LaravelではデフォルでhFeatureとUnitというディレクトリに分かれていて、Feature には機能テスト、Unit にはユニットテストを書く構成になっています。
関数単位、クラス単位の場合はUnit

Mockeryを使うと疑似モックを作ってくれるので便利らしい。

2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?