プログラミング初心者がアーキテクトっぽく語る

見苦しい記事も多数あるとは思いますが訂正しつつブログと共に成長していければと思います

テスト駆動開発(TDD)のコーディングの流れ

初学者がTDDでコーディングするとき疑問に思うことは多々あります。

「次はどんな試験書けばいいんだっけ?」

「この試験はどんなコードでパスさせるのが正解なんだろう?」

そこでTDDでコーディングする基本的な流れをまとめてみました。

(久し振りにTDDしたら色々忘れてたので備忘録として残しておきます)


1. オブジェクトが持つ機能をイメージする

まずはこれから書くオブジェクトの機能をイメージします。

ある程度、全体像がわからないと試験戦略をたてることができません。


2. 機能を3つのグループに分類

思いついた機能を以下の3つのグループに分類します。

  1. コア機能
  2. コアに依存しない機能、もしくはコアが依存する機能
  3. コアに依存する機能

特に重要なのは1と2です。

3は後から考えてもOKです。


3. 各グループを順に試験・実装

各グループを以下の順番で試験・実装します。

  1. コアに依存しない機能、もしくはコアが依存する機能
  2. コア機能
  3. コアに依存する機能


4. 各機能は下記の順に試験

各グループの機能を試験・実装するときに留意したい点があります。

各機能は下記の順に試験しましょう。


5. 優先順位に従って実装

試験を書いたら次はその試験をパスさせるコードを書きます。

コードを書くときは下記の優先順位に従い実装しましょう。


以上が基本の流れです。

細かい発展的な部分で感じていることもありますがまだ確信が持てていません。

いずれそれも整理、文書化できたらいいなと思います。