2018-01-07 テスト駆動開発 第3章、第4章 覚書 3章 CHFはスイスフラン Value Object パターンではコンストラクタを固定する制約をつける 制約の確認のためのTodoを追加 追加した制約の確認のため、equals()メソッドを使ったテストを書き、デバッグ失敗→空実装 コードを一般化できるのは2つ以上の実例がある場合のみ。今回の例 equals で2つ以上実例をテストケースで実行し抽象化する例。 空実装に対して2つ以上の実例を同時に満たすように抽象化。今回の例は、equals メソッドで受けた変数を Dollar 型にキャストし、コンストラクタの値と比較した結果同じであれば真、違っていれば偽を返すロジックに書き換える。 4章 手続き型になっていたテストを、一つの関数にまとめることでテストの意図を見いだせるようになった。 Javaは同一クラスであれば別インスタンスの private フィールドにアクセスできる。 テストケースを書き換えたことにより、元あったテストの内容は担保されなくなるので、そのリスクは理解しておくこと。