Android、Java、Web系、Linux、マラソン等の備忘録

2014/01/19

「Let's Play TDD #2: Peering Dimly Into the Future」の写経

0 件のコメント
写経すると良いって聞いて...

写経の対象

Let's Play TDD #2: Peering Dimly Into the Future - YouTube
https://www.youtube.com/watch?v=1-sBRRWBxSg

最初のコード


  • 前回のコードからパッケージ名をfinacesに変更


利子を付けて残高計算

  • 翌年の残高を利子を付けて求める
    • そういうメソッドがあるものとして、テストを記述
      • 預金10000ドル
      • 年利10%で翌年のインスタスを取得 ←new!
      • 残高が11000ドルになっていることを確認する
    • それに伴いSaveingAccount側に利子を設定するnextYearというメソッドをEclipseのコード補完で追加

RED

assertEqualsで失敗するよう修正

  • 現状、NullPointerExceptionでテストが失敗している
  • テストの成否はassertEqualsの部分で行うよう修正するものと思われる
    • nextYearメソッドの中身を適当にインスタンスを生成するだけ

RED

金利計算を実装

  • 上記のテストを元にnextYearメソッドの中身に利子計算の処理を実装
  • 動画では、テストを繰り返しながら結果がGreenになるまで計算式を試行錯誤するデモをしてました
  • 以下、試行錯誤してる模様

RED


RED


RED


RED


GREEN

60年分くらい金利計算を確認?

  • このあたり英語が聞き取れないので、何を意図してMainクラスを作成したのかイマイチわかってません
  • 上記で作成したnextYearをfor文で60年分くらいループさせて標準出力で値が正しいことを見てます
出力結果はこんな感じ↓
0:$10000
1:$11000
2:$12100
3:$13310
4:$14641
5:$16105
6:$17715
7:$19486
8:$21434
9:$23577
・・・・

おわり

今回は、利子の計算式を例に括弧の位置がズレてたりなどのコーディングミスをTDDであぶり出して正しい計算式を作るといった感じでしょうか。このnextYearメソッドをテストしないで、nextYearを扱う一連の処理でのテストだとどこが間違ってるか分かり辛いでしょうね。
あと、英語があまりヒアリングできないので、何を意図してるかはコード頼みなところがあります.....。

Gist

PR

0 件のコメント :

コメントを投稿