「やる夫で学ぶTDD」 三日目 不等辺三角形 そして伝説へ・・・ #ytdd

某SIerで if(true == false) のような神コードのインスペクションで廃人化しているやらない夫こと太田先生の「やる夫で学ぶTDD」三日目です。 ⇒ AAバージョン by @hanisinatakuan http://changegetter1.blog63.fc2.com/blog-entry-100.html
7
Kenichiro Ota @oota_ken

やる夫で学ぶTDD 第3日 不等辺三角形 そして伝説へ・・・

2011-02-04 23:50:50
Kenichiro Ota @oota_ken

やる夫:やらない夫ーやらない夫

2011-02-04 23:52:18
Kenichiro Ota @oota_ken

やらない夫:おお、遅れてすまん。

2011-02-04 23:52:30
Kenichiro Ota @oota_ken

やる夫:やらない夫、全然チャットに現れないから心配したお。今日は何やっていたんだお?

2011-02-04 23:53:00
Kenichiro Ota @oota_ken

やらない夫:会社の開発&テスト・クラウド環境で、F#の開発環境を作り、クラウド環境での開発を検証していたのだ。 http://twitpic.com/3weix3

2011-02-04 23:54:07
拡大
Kenichiro Ota @oota_ken

やる夫:おおお、光たん。壁紙になるほど人気者だったのかおー。台湾ではすごいのかお?

2011-02-04 23:54:34
Kenichiro Ota @oota_ken

光たん:我是在台灣紅人。(やる夫に秘密にしていたけど、実は台湾ではアイドルなんだよ(激しく意訳))

2011-02-04 23:55:27
Kenichiro Ota @oota_ken

やる夫:光たんすごいお!ところで、やらない夫がなぜ、MicrosoftのVisual Studio使っているんだお?仕事では使わないはずだお。

2011-02-04 23:56:14
Kenichiro Ota @oota_ken

やらない夫:いや、VBの移行のコードとか見ることもあるし、使わないわけじゃないよ。まあ、F#は趣味かな。今度、F#でやる夫とペアプロやろうか?

2011-02-04 23:57:02
Kenichiro Ota @oota_ken

やる夫:F#ってわからないけど、やる夫が今使っているのはC#なんで、多分その親戚だと思うので、大丈夫だお!実はJavaはあんまりやる夫分からないけど、今回はやらない夫にいろいろ教わるから頑張っているんだお。

2011-02-04 23:58:13
Kenichiro Ota @oota_ken

やらない夫:ニートから一気に男らしくなって友達としてうれしいな。じゃあ、そろそろはじめようか?昨日は、2 1 1 に対して、二等辺三角形じゃないというテストを追加したところで、テストが失敗して、

2011-02-04 23:59:18
Kenichiro Ota @oota_ken

やらない夫:そもそも、三角形を満たすためには、三角不等式である a < b + c && b < a + c && c < a + bを満たさなければいけないことが分かったんだよな。

2011-02-05 00:00:24
Kenichiro Ota @oota_ken

やる夫:じゃあ、三角形かどうかっていうのは仕様にはないけど、中間段階として検証が必要だから、メソッドとして作るかお?

2011-02-05 00:01:35
Kenichiro Ota @oota_ken

やらない夫:そうだな。その前に既存の正三角形と二等辺三角形のテストケースに三角形かどうかのテストケースを追加してみようか。まず、テストから書くがTDDだったよな。前の失敗した assertFalse(triangle.isIsoscelesTriangle());

2011-02-05 00:03:42
Kenichiro Ota @oota_ken

やらない夫:は、一回取り除こう。

2011-02-05 00:03:52
Kenichiro Ota @oota_ken

やる夫:では、正三角形は三角形だから、正三角形かどうかを検証するメソッドに、 ssertTrue(triangle.isTriangle()); を追加するお!

2011-02-05 00:04:53
Kenichiro Ota @oota_ken

やらない夫:いったん、コンパイルエラーになる。

2011-02-05 00:05:20
Kenichiro Ota @oota_ken

やる夫:もう覚えたお、クイックフィックスでメソッド作って、実行だお!

2011-02-05 00:05:33
Kenichiro Ota @oota_ken

やる夫: return false;だから当然失敗するお。これを return true;に治して、再実行。合格だお!

2011-02-05 00:07:20
Kenichiro Ota @oota_ken

やらない夫:三角形じゃないケースについては 2 1 1のケースが再利用できるな。ここに assertFalse(triangle.isTriangle());を入れる。

2011-02-05 00:09:08
Kenichiro Ota @oota_ken

やる夫:失敗したお。ようやく、三角不等式の出番だお。 a < b + c を追加するお 2 1 1の場合 a = b + cになっちゃうからこの不等式を満たさないお。

2011-02-05 00:10:31
Kenichiro Ota @oota_ken

やる夫:成功するように、 a < b + c つまり return a.compareTo(b.add(c)) == -1;にするお! テスト合格だお!

2011-02-05 00:13:01
Kenichiro Ota @oota_ken

やらない夫:同じようにして、すでにある 1 2 1 と 1 1 2のテストケースに対しても、assertFalse(triangle.isTriangle());を追加して、isTriangleをリファクタリングしてを繰り返す。

2011-02-05 00:14:03
Kenichiro Ota @oota_ken

やる夫:できたお!今度は、元々0 0 0で正三角形ではないことを検証したメソッドに 同じく assertFalse(triangle.isTriangle()); を追加するお!

2011-02-05 00:16:51
Kenichiro Ota @oota_ken

ちょっと予想が違ってたので、デバッグ中ですwww そういえば、タグをつけていませんでいた。 #ytdd

2011-02-05 00:20:51
1 ・・ 4 次へ