Edited at

TDDについて


TDDとは

Test-Driben Deberopment:TDD

テスト駆動開発です。

普通の開発では実装をして、そのソースコードの品質を確認するためにテストコードを書いて、テストを実施します。

TDDでは逆にテストを先にかき、そのテストコードが通る実装とリファクタリングを行います。


メリット


  • ドキュメント書くのが苦手な開発者も、テストソースをドキュメントとして残せる

  • 仕様を確認しやすい

  • リファクタリング時の心理的な負担がへる

  • ペアプロにもってこい(一人がテストコード、一人が実装をする)


デメリット


  • ほぼ二倍のコードを書くため、2倍コードをかけるようになる、または1/2の量でコードをかけるようになる必要がある(乱用ダメ絶対)


実装サイクル

Red:絶対に失敗するコードを書く

Green:テストの通る最低限の実装をする

Refactor:テストが全て通ることが前提で、ソースコードを綺麗にする

TDD_Graphic.jpg

引用元:https://blog.ippon.tech/a-roadmap-to-tdd-adoption/


Redをなぜするのか?

普通にテストを一発目から通せばいいと普通思います。僕もそう思っていました。

ここでRedにする理由は、書いたテストコードの仕様を確認するためです。

この条件だとテストは失敗するということが確認できていないということは、テストの抜け漏れを発生させる可能性があります。

なので、最初に「この条件だとこのテストは通らないはず」ということを確認するためにも一度テストを失敗させましょう


テストをしやすくするために

極力UIの処理とロジックを分けるべきだと思います。

テストはできる限り細かい単位で実施した方が、確認範囲が少なく単純になります。

それでは、実際にTDDを用いて、じゃんけんアプリを作成していきます。

https://qiita.com/MHTcode_micky/private/bfbc80065d5e02cea849