「やる夫で学ぶTDD」 三日目 不等辺三角形 そして伝説へ・・・ #ytdd
やる夫:0 0 0のときは、 a < b + c, b < a + c, c < a + bはすべてFalseになるから当然&&結んだらFalseでOKだった苧。ちょっと焦ったお!
2011-02-05 00:26:49やらない夫:やる夫いま、 a != null && b != null && c != null のコードをpreConditionメソッドからコピペしたろう。それはリファクタリングの匂い、重複を含む匂いだ。
2011-02-05 00:30:46やらない夫:引き続き、2 2 1の二等辺三角形のテストケースにについても assertTrue(triangle.isTriangle()); を追加する。 #ytdd
2011-02-05 00:34:33やらない夫:5 4 3の二等辺三角形じゃないケースについても assertTrue(triangle.isTriangle());を追加して、テストする。
2011-02-05 00:37:07やらない夫:これは実は二等辺三角形じゃなくて、直角三角形なんだけど、今回の使用上の定義では不等辺三角形だから、テストメソッドを変更して・・・testScaleneTriangleisTrueとする。
2011-02-05 00:39:52やる夫:assertTrue(triangle.iScaleneTriangle());を用意するお!コンパイルエラーで当然こけるお!
2011-02-05 00:41:29やる夫:次はreturn trueにする方法もあるけど、前のテストケースから分かることは、不等辺三角形とは 三角形であってしかも二等辺三角形じゃないものだから、こう実装しちゃうのが早いお。
2011-02-05 00:43:22やる夫: return assertTrue(triangle.iScaleneTriangle());だお。そして、testScaleneTriangleisTrueのテストケース自体から、
2011-02-05 00:44:49やる夫:ssertFalse(triangle.isIsoscelesTriangle());を取りのぞくお! #ytdd
2011-02-05 00:45:02やる夫:まず、正三角形は三角形であり、かつ三辺が等しいことだから、isTriangleを条件に追加する必要があるお。これでテストを再実行すると成功するお。
2011-02-05 00:47:55やる夫:正三角形は不等辺三角形ではないから、 testEquilateralTriangleIsTrueに assertFalse(triangle.iScaleneTriangle()); を追加するお。
2011-02-05 00:49:33やる夫:isTriangleとisIsoscelesTriangle, isEquilateralTriangleの3つの中で、preConditionを読んでいるので、:isTriangle内のみに集約するお!この時もテストコードが守ってくれるお!
2011-02-05 00:56:03やる夫:で、できたおー、3辺を与えると、正三角形、二等辺三角形、不等辺三角形が判別できるようになったおー #ytdd
2011-02-05 00:59:05