somemo programming etc.

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

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

前回できなかったtimesメソッドの一般化など、大掛かりなリファクタリングになりました。

行ったこと

  • Money#ファクトリメソッド(Franc)をMoneyを返すように修正した
  • Money#timesをnullでなくMoneyを返すように修正した
  • Money#ファクトリメソッド(Dollar)をMoneyを返すように修正した
    これにより、サブクラスを生成する処理はテストコードにのみ存在するようになった
  • クラス違い(MoneyとFranc)でもamountが同じであることを確認するテストが不要になったので、削除した
    (削除する理由はDollarとFrancの比較を行うテストがあるため)
  • サブクラスを生成する処理が完全になくなったので、ファイルをMoneyクラスのみにした
  • テストケースファイルも1つにした
    1. Francのテストケースを全てDollarにまとめ、テストケースファイルを削除し、コミットした
    2. Franc同士の等価性テストは、Dollarにカバーされているので削除した
    3. DollarテストケースファイルをMoneyテストケースファイルに変更する

ファイルも処理もだいぶすっきりしました。
これを行わないと、無意味なコードが増えてメンテしづらくなるんでしょうね。
乗算のテストにDollarとFrancのテストが存在している状態なので、次回削除しておこうと思います。