「やる夫で学ぶTDD」 三日目 不等辺三角形 そして伝説へ・・・ #ytdd
やらない夫:会社の開発&テスト・クラウド環境で、F#の開発環境を作り、クラウド環境での開発を検証していたのだ。 http://twitpic.com/3weix3
2011-02-04 23:54:07やる夫:光たんすごいお!ところで、やらない夫がなぜ、MicrosoftのVisual Studio使っているんだお?仕事では使わないはずだお。
2011-02-04 23:56:14やらない夫:いや、VBの移行のコードとか見ることもあるし、使わないわけじゃないよ。まあ、F#は趣味かな。今度、F#でやる夫とペアプロやろうか?
2011-02-04 23:57:02やる夫:F#ってわからないけど、やる夫が今使っているのはC#なんで、多分その親戚だと思うので、大丈夫だお!実はJavaはあんまりやる夫分からないけど、今回はやらない夫にいろいろ教わるから頑張っているんだお。
2011-02-04 23:58:13やらない夫:ニートから一気に男らしくなって友達としてうれしいな。じゃあ、そろそろはじめようか?昨日は、2 1 1 に対して、二等辺三角形じゃないというテストを追加したところで、テストが失敗して、
2011-02-04 23:59:18やらない夫:そもそも、三角形を満たすためには、三角不等式である a < b + c && b < a + c && c < a + bを満たさなければいけないことが分かったんだよな。
2011-02-05 00:00:24やる夫:じゃあ、三角形かどうかっていうのは仕様にはないけど、中間段階として検証が必要だから、メソッドとして作るかお?
2011-02-05 00:01:35やらない夫:そうだな。その前に既存の正三角形と二等辺三角形のテストケースに三角形かどうかのテストケースを追加してみようか。まず、テストから書くがTDDだったよな。前の失敗した assertFalse(triangle.isIsoscelesTriangle());
2011-02-05 00:03:42やる夫:では、正三角形は三角形だから、正三角形かどうかを検証するメソッドに、 ssertTrue(triangle.isTriangle()); を追加するお!
2011-02-05 00:04:53やる夫: return false;だから当然失敗するお。これを return true;に治して、再実行。合格だお!
2011-02-05 00:07:20やらない夫:三角形じゃないケースについては 2 1 1のケースが再利用できるな。ここに assertFalse(triangle.isTriangle());を入れる。
2011-02-05 00:09:08やる夫:失敗したお。ようやく、三角不等式の出番だお。 a < b + c を追加するお 2 1 1の場合 a = b + cになっちゃうからこの不等式を満たさないお。
2011-02-05 00:10:31やる夫:成功するように、 a < b + c つまり return a.compareTo(b.add(c)) == -1;にするお! テスト合格だお!
2011-02-05 00:13:01やらない夫:同じようにして、すでにある 1 2 1 と 1 1 2のテストケースに対しても、assertFalse(triangle.isTriangle());を追加して、isTriangleをリファクタリングしてを繰り返す。
2011-02-05 00:14:03やる夫:できたお!今度は、元々0 0 0で正三角形ではないことを検証したメソッドに 同じく assertFalse(triangle.isTriangle()); を追加するお!
2011-02-05 00:16:51