はじめに
JUnitとTDDの学習を始めたばかりの人が、気軽に手を動かしながら学べる環境があったらと思い、巷にある題材を参考に教材を作成してみました。
自社製品を持っていたりすれば「このプロダクションコードに実際に書いてみて!」、「TDDで開発してみようか!」などと言ったりできると思います。
しかし、そうはいかない現場も多々あるなぁと思い、気軽に手を動かしながら学べそうな教材を作ってみました。
JUnitやTDDの初学者の1st Stepになったら幸いです。
※当方すでに本職はエンジニアとして開発などしておらず、業務の合間を縫って作成したものになります。
多少の不備などはご容赦ください。
この記事はどんな方向け?
以下に該当する方を対象としています。
- JUnitやTDDを学び始めた人(特に新人研修などで初めてプログラミングする人)
- JUnitやTDDを学んでみたがよく分からず苦戦している人
動画視聴(JUnitやTDDを知らない人向け)
以下の動画を先にご視聴ください。
@t-wadaさんのライブコーディングイベントです。
https://www.youtube.com/live/Q-FJ3XmFlT8?feature=shared&t=1145
TDDの基礎であるRED、GREEN、REFACTORのサイクル、テストを書く前どうやってテストを書くかを決めるなどをライブコーディングで学ぶことが出来ます。
教材
- README.md にセットアップなど含めた進め方の説明があります
課題
以下の通りday1~day5まで課題を用意しています。
初心者はday1から始めることを推奨しますが、順番通りに進めないといけないわけではありません。
- day1(難易度:易) :FizzBuzz問題のユニットテストを書いてみよう
- t-wadaさんのライブコーディングの内容を参考にしています
- JavaやJUnitの初心者、あまり分からないという方は動画を見ながら写経などしていただいても構いません
- day2(難易度:易) :アサーション、アノテーションを使ってみよう
- JUnitで基本的に使われるアサーション、アノテーションについてはこちらをご覧ください
- day3(難易度:普) :テストダブルを理解し、使ってみよう
- day4(難易度:普) :パラメータ化テストを理解し、使ってみよう
- day5(難易度:やや難):TDDで開発をしてみよう
- TDDでは仕様を満たすテストを書いてから、そのテストをパスするように実装していきます
- テストを書いてパスさせるだけでなく、リファクタにも挑戦していきましょう
解答例&解説
- day5の課題が実際にTDDしてみようという課題ですが、解答例&解説のPRを作成していますので参考にしてください
- day1~day4の課題は時間あれば解答作成します
参考文献
この記事は以下の情報を参考にして執筆しました。