「やる夫で学ぶTDD」八日目 ボウリングのスコア計算 現在のフレームって? #ytdd
やる夫:if (!firstThrow || (firstThrow && pin == 10)) { に修正すればいいお! || 以降の条件式がストライク化の判定だお #ytdd
2011-02-15 00:57:34やらない夫:これそのまま条件式に書くと分かりにくいから、テスト成功してからでいいから、isStrike(pin) のようにインラインメソッド化しないか? #ytdd
2011-02-15 00:58:30やる夫:それの方が分かり易いから、テスト合格したら、やるお!成功したお。リファクタリングもやって再テストしたお。Eclipseはメソッドの抽出が簡単にできるから便利だお。#ytdd
2011-02-15 00:59:39やらない夫:実はこのままだと、10フレーム目でストライクやスペアを取った時に、11フレーム目(スペアの場合)と12フレーム目(ストライクの場合)おかしくなってしまうことが、10フレーム目のテストを用意すると分かる。 #ytdd
2011-02-15 01:01:56やる夫:こんな感じのテストかお?実行すると・・・たしかに、10フレーム目でストライクとスペア取ると10フレームにならず、12と11になってしまうお! #ytdd http://twitpic.com/3zs485
2011-02-15 01:04:47やらない夫:ゆえに、やる夫が単純に crrentFrame++; としたのはNGで、10フレーム目を考慮して、currentFrame = Math.min(10, currentFrame + 1); と10フレーム目で投げた場合に突き抜けないようにする必要がある #ytdd
2011-02-15 01:06:18やる夫:これでどうかお!全テストケース合格したお! #ytdd http://twitpic.com/3zs5db
2011-02-15 01:07:16やらない夫:それはもう二人とも眠さが危険状態なので、明日にしよう。でも、すでに課題2でフレームごとにスコア計算していくというクラスは書いているので、現在のフレームが分かっているなら、流用するのは簡単だな。 #ytdd
2011-02-15 01:09:06すみません。劇ねむなので、残りは明日ということでよろしくです。明日は現時点のスコア計算までします。一部既にScoreクラスがスタブでいたりしますがそれはご愛嬌。ではまた明日。 #ytdd
2011-02-15 01:10:10タグ付け忘れた><「やる夫で学ぶTDD」AA化http://changegetter1.blog63.fc2.com/ #ytdd
2011-02-15 02:08:36