カテゴリー
サインイン 新規登録
学習時間 20時間
難易度 中級
質問投稿
価格 ¥1,980
月額 ¥2,980
Unlimited会員はこちらの教材を含む100種類以上のUnlimited対象教材が学び放題

Laravelでテスト駆動開発を学ぼう!

Laravelらしいテストの書き方、実践的なユニットテスト、フィーチャーテストを学ぶだけでなく、中長期的な視点で、テストコードとプロダクションコードの共生関係を作っていくための、テストに対する考え方、カバレッジ、リファクタリング、など実務で役に立つスキルを学ぶ。

3.2
最終更新 2022/7
nunulk

「分からないから分かるへ」テスト駆動開発を身につけ、変更に強いアプリ開発を実践しよう!

自動テストは大事と感じているが、なかなか実務で導入するに至らないとか、テストでどんな項目をチェックしたらいいかわからないといった話をときどき耳にしていました。

テスト駆動開発はテスト手法ではなく、効率的な開発や開発者が安心して取り組める開発体験を手に入れるための開発プロセスのひとつです。

自動テストが上手に書けるようになり、テストファーストでプロダクト開発ができるようになれば、良い設計・良い実装を導く手助けになるはずです。ぜひ、本教材でテスト駆動開発を体験してみてください。

Laravel でテスト駆動開発をする際の基本と実践を学ぶ

本教材では、ヨガ教室の予約サイトを題材に、Laravel でテスト駆動開発をする際の基本的な流れと実践的なテクニックを学びます。

実際に、LaravelとPHPUnitを使ったユニットテスト、フィーチャーテストそれぞれの作り方、テストの書く際の方針や便利な機能、テスト駆動開発の基本を学ぶことができます。テスト駆動開発を身につけることで、変更に強いアプリケーションを作ることができるようになります。

学習内容

  • テスト駆動開発の基本的な流れを学びます
  • ユニットテスト(単体テスト)とフィーチャーテスト(機能テスト)の概要について学びます
  • 自動テストにおける Laravel 特有の補助機能について学びます
  • テスト戦略を立てる際のポイントについて学びます

テスト駆動開発の概要

以下の図のように、プロダクションコードを書く前にテストを書き(テストファースト)、テスト失敗 → テスト成功 → リファクタリングのサイクルを細かく回し、徐々に「動作するきれいなコード」を完成させていくスタイルです。

大事なのは、一度で完成させることを目指さず、このサイクルを何度も回して徐々に完成形に近づけていくことです。

Image from Gyazo

本教材の対象者

  • 自動テストを書いたことがない、あるいは少ししか書いたことがないが、これから書いていきたいと思っている方
  • 自動テストを書いているが、うまく書けている自信がない方
  • これから自動テストを導入したいと考えているが、どうやって導入していけばいいか悩んでいるマネジャー、リーダーの方

受講における必要条件

本教材は中級者向けとなっています。 以下の条件を満たすかどうか事前に確認して受講してください。

  • PHP および Laravel の基礎知識

PHP や Laravel を一度も触ったことがない方は、まずは 書籍 や Techpit の他の教材で学習することをおすすめします。

これは必要条件ではありませんが、「テスト駆動開発」(ケント・ベック著)を事前にお読みになっておくと、テスト駆動開発の基礎知識を補完できるので、効率よく進められるのではないかと思います。

学ばないこと

  • ソフトウェアテスト全般に関すること
  • E2E テスト、受け入れテストに関すること
  • 大規模システムにおけるテスト計画や実施に関すること

本教材の対応バージョン

  • PHP 8.0
  • Laravel 6.x, 7.x, 8.x
  • MySQL 8.0

付属の PHPUnit は 8.3 ~ 9.5 です。

本教材で質問対応可能なOSや環境

  • Mac OS

開発環境は Mac を前提としており、動作確認も macOS でのみしていますが、開発自体は Docker を使って行うので、Docker Desktop for Windows が動かせるのであれば、Windows でも動作させることができるはずです。

本教材の構成

0章 はじめに

本教材を進める上で必要な前提知識の解説と、設計の概要説明、環境構築を行います。

1章 テスト駆動開発の進め方

テスト駆動開発の一連の流れを説明します。簡単なユニットテスト、フィーチャーテストの実装を通して流れを体感してください。

2章 ユニットテストの作り方を学ぶ

テスト駆動による実践的なユニットテストの作り方を学びます。

3章 フィーチャーテストの作り方を学ぶ

テスト駆動による実践的なフィーチャーテストの作り方を学びます。

4章 将来のためにリファクタリングをする

中長期的な視点で、テストコードとプロダクションコードの共生関係を作っていくための、テストに対する考え方、カバレッジ、リファクタリング、などについて学びます。

Appendix

自動テストを開発プロセスに組み込むために役立つツールの紹介をします。

カリキュラム

Section 0 はじめに
Section 1 テスト駆動開発の進め方
Section 2 ユニットテストの作り方を学ぶ
  • 2-1 ユニットテストがあると良いケース
  • 2-2 要件からテストパターンを考える
  • 2-3 テストしやすいモジュール構成を考える
  • 2-4 ユニットテストのためのテストダブル
  • 2-5 要件変更に対応する

講師のプロフィール

教材のレビュー

3.2
11件の評価
27%
18%
18%
18%
18%
井田晃平 1年以上前
説明不足な点はあったが、テスト駆動を知る良い教材でした。
oka 1年以上前
自動テストがどういった場合に必要か、どういう書き方が良いかなど概念的な内容はとても参考になりました。 実務の説明については少しわかりにくい箇所や誤字もありましたので、その点が残念でした
深井 隆史 1年以上前
Laravelを用いたTDDについてステップバイステップで構成されており、非常に理解しやすかった 「ユニットテストとフィーチャーテストの扱い」や「ユニットテストがあると良いケース」など自動テストに関する前提知識の説明があるところも大変よかった。 Laravelでの開発経験があり、自動テスト/TDDの導入を検討している人にお勧めできる教材だった。