somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【TDD】テスト駆動開発入門6章完了

6章が完了しました。

ドルとフランの両通貨に関する共通部分を抽出し、通貨クラス(Moneyクラス)として表現します。 これにより前章のコピペによる重複を削除(リファクタリング)していきます。

Dollarクラスのリファクタリング手順

・Moneyクラスを作成する

・MoneyクラスをDollarクラスに継承する

・MoneyクラスにDollarクラスのamountをprotectedに変更して移動する

・MoneyクラスにDollarクラスのequalsメソッドを移動する

・equalsメソッドの引数名をする(dollar⇒money) 書籍と違っている部分

・今更ですが、phpなので型を気にしていない(equalsの引数)

・しかし、タイプヒンティングをするべきかちょっと悩んでいる

Dollarクラスのリファクタリングが完了したので、Francクラスのリファクタリングをします。

書籍では、Francクラスのequalsメソッドのテストをしていない(書き忘れ)という設定でした。 しかし、自分は書いて実行していましたのでリファクタリングをしました。

Francクラスのリファクタリング手順

・FrancクラスにDollarクラスに継承し、Francクラスのamountを削除する

・Francクラスのequalsメソッドを削除する

リファクタリングがクラスの抽出でも、手順にあるように段階的に行いました。 これにより、どの段階でリファクタリングに失敗したかを把握できるようにしました。 実際、一気に行うと頭をたくさん使うので大変でした。

 

以上。