テスト駆動開発入門
マシンがふっとんでしまったときに、TDDの写経もふっとんだので、 再度、見直して11章まで見直し。書き直し。で、せっかくなので?やっと、JUNIT4でかいてみることに。というわけではじめの一歩は。 import org.junit.Test; import static org.junit.Assert.…
コンストラクタはサブクラスをもつ十分な根拠ではない サブクラスを消したい サブクラスへの参照を、コードの意味を変えずにスーパークラスへの参照へと置き換える MoneyクラスにあるFrancを排除 public static Money franc(int amount) { return new Franc(…
timesメソッドってなにしてたんだっけかね?(w そろそろ後半戦かな? 二つのtimes()の実装は似ているが同じではない 前進するための後進ファクトリメソッドのインライン化 まずは、Francクラスから Eclipseのリファクタリング機能を使う alt+shift+i publi…
ふう、またあいてしまった。 通貨を実装するには・・・と考えてはダメ 通貨に対してどんなテストをしたいか? 必要以上のオブジェクトを確実にできないようする フライウェイト【DP】のファクトリを使う 通貨を表現する複雑なオブジェクトを所有 インスタン…
FrancとDollarのtimesは似ている Moneyを返すようにすれば一致させることが可能 Francのtimesメソッド public Money times(int multiplier) { return new Franc(amount * multiplier); } テスト Dollarのtimesメソッド public Money times(int multiplier) {…
FrancクラスとDollarクラスの比較 testEqaulity()に検証を追加 public void testEqaulity(){ assertTrue(new Dollar(5).equals(new Dollar(5))); assertFalse(new Dollar(5).equals(new Dollar(6))); assertTrue(new Franc(5).equals(new Franc(5))); assert…
5章でテストを早くパスするために、あえてコピペという罪を犯してかいたコードを綺麗にする 綺麗にするには あるクラスの拡張クラスを作るより 共通のスーパークラスを作る スーパークラス それぞれ下位のクラスに対して、等価性がある 各変更ごとにテストを…
久しぶりだなぁw) 最初のTodoに対してのテスト レートが2:1の場合、$5+10CHF = $10 急激に飛躍のあるテストに思える 必要なもの Dollarのように振舞えるオブジェクトだけど、フラン通貨を表現できるオブジェクト フランオブジェクトが正しく動作するための…
等価性を定義したことで、テストが情報豊富になる?timesメソッドをみるDollarオブジェクトを返しているのでテストのアサートを書き直す public void testMultiplication() { Dollar five = new Dollar(5); Dollar dollar = five.times(2); assertEquals(new…
ここであげられてる内容ははこんな感じ オブジェクトの振る舞いについて Contract=契約について バリューオブジェクトを使ってDollarの値を一般化 2つの暗黙的意味 デザインパターン 30章でもとりあげている 三角測量で検証 二つの定理から一般解を導く リ…
TDDの目標 動作する きれいな ここでは、動作→きれいな 逆はアーキテクチャ駆動と言っているid:t-wadaさんの話だと、どちらからでもよいとにかくはやくグリーンにしたいリズムが重要 Dollarオブジェクトが変化するこんなテストを用意 package star.Test; imp…
真ん中ぐらいまで読んだのですが、J2EE勉強会でのid:t-wadaさんの発表を聞いて、もっときちんと理解しないとと思い、再びはじめから。 当面の目標 TDDのリズムを身につける リズム テストを追加 すべてのテストを実行 失敗を確認 小さな修正 すべての成功を…
あまり寝付けないので、7章読んでみる。 あとで、コードを書いて確認してみよう。 ・・・あんま身にはいらないかも--; でも、やはり前の章のくだりの話がやはりみえてこない。 よりよい動機付けを得るまでこれ以上の設計は導入しない 明白な安全でないコー…
コードを【きれい】にしていくことが目的。きれい≒重複がない amountインスタンス変数の移動はEclipse:Refactor→Pull Upで equlsメソッドはPull Upではだめ コードを変更する前に、最初からそこに存在すべきであったテストを作成 リファクタリングする前にも…
一週間ぶり・・・どこまでやったかわすれてた+、+ 4、5章まで終了。 変数ひとつをプライベート化するのも大変だなぁ。 でも、こうやってひとつひとつ積み上げてやることが プログラムに対する安心感につながるんだな。 なるほどね。5つフェーズ テストを…
3章まで終了。 でも、まだきちんと理解していない。 何度も読み直しが必要かも。