【読書会メモ】テスト駆動設計(2)

実施日時:2020/4/8
対象範囲:第3章-第6章
参加者:yodai、くめごん、まぶり、kassyi

3章
オブジェクトの値を変更しても前の値が変更されない様に、value objectとしてオブジェクトを値として扱う方法がある。
Dollerオブジェクトから小切手オブジェクトを作成した場合、小切手オブジェクトを変更するとDollerオブジェクトも変更されてしまう。
それを別名参照問題という。
Value Objectでは操作するたびに新しいオブジェクトを返す必要がある。
三角測量とは、一つのものを証明するのに異なる2つのテストを実行するものちょっと角度を変えてテスト(確認)をする場合に三角測量を使用する。
4章
消された所をDollerのプロダクトに入れている
TDDは完璧を目指しているのでなく、欠陥を減らして前に進めるためのもの
欠陥を見逃しても教訓を形にして前に進む。
透過性検証ができているから掛け算の検証ができている。
2つ検証できていなかったらお手上げになる。
5章
コピーして新しいコードを作成するのは推奨されないが、フェーズの状態により許される。
設計よりも速度が重要だが、重複が出たら後のフェーズでリファクタリングする必要がある。
6章
早く新しいテストを通すため、かなりの量をコピペしてしまった。
そのため、コードをきれいにする必要がある。
1つの案は、片方のクラスが他のクラスを継承するものである。
DollerクラスとFrancクラスは、その親クラスであるMoneyクラスを作成して継承する。
リファクタリングの過程でミスが有っても、テストが書かれていないと素通りされてしまう。
なので、リファクタリングの前にテストを書く必要がある。
テストを先に作成するとリファクタリングも大胆にできる。
TDDがカバーできているのはチーム開発などの一部なので、通常のウォーターフォールでの試験とは異なる。
TDDは動作の確認などに使う。
コードを書きながら設計するイメージ。

この記事が気に入ったらサポートをしてみませんか?