Help us understand the problem. What is going on with this article?

LaravelでTDDを始めよう

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を使うと疑似モックを作ってくれるので便利らしい。

technoscape
PHPer
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした