「やる夫で学ぶTDD」七日目 プログラマに優しいNEET判定をC#でやってみるよ #ytdd

某SIerで if(true == false) のような神コードのインスペクションで廃人化しているやらない夫こと太田先生の「やる夫で学ぶTDD」七日目です。
4
Kenichiro Ota @oota_ken

今日はC#でやる夫のTDDペアプロやってみるよ。ということで、やる夫で学ぶTDD 第7日目 プログラマ優しいNEET判定をC#でやってみるよ #ytdd

2011-02-11 23:40:59
Kenichiro Ota @oota_ken

やらない夫:デブサミではC#erもな方も来るかもしれないと思い、C#で最低限度TDDできるようにVisual Studioの勉強をしていたのだ。 #ytdd

2011-02-11 23:42:02
Kenichiro Ota @oota_ken

やる夫:やらない夫は仕事ではVisual Studioとか使わないんじゃないの?趣味かお? #ytdd

2011-02-11 23:42:33
Kenichiro Ota @oota_ken

やらない夫:ペアプロTDDの門戸は広く開かれるべきなので、仕事で使わなくても学んでおいた方がよいかなと。 昔、・・・.NETになる前ぐらいは使っていたぞ。#ytdd

2011-02-11 23:43:37
Kenichiro Ota @oota_ken

やる夫:そんな昔の知識通用しないお!やらない夫が嫌がっているCOBOLerのOSSANたちみたいに昔の知識押し付けてくるの勘弁だお! #ytdd

2011-02-11 23:44:23
Kenichiro Ota @oota_ken

やらない夫:だからちゃんと一通り勉強してからTDDに取り掛かるということをしていたんだ。 #ytdd

2011-02-11 23:45:19
Kenichiro Ota @oota_ken

やらない夫:・・・Hello World書けるぐらいかな? #ytdd

2011-02-11 23:46:02
Kenichiro Ota @oota_ken

やる夫:HHHHHHHHHHHHHHHHHHHHH,、それで、C#でTDDなんて笑止千万だお! #ytdd

2011-02-11 23:46:41
Kenichiro Ota @oota_ken

阿部さん:今日は葛西臨海公園のベンチに座っていたが、さすがこの寒さ、誰もいい男は来なかったな。おっとところで、TDDの機能はVisual Studio Professional以上だと便利なのがついているぜ。 #ytdd

2011-02-11 23:48:12
Kenichiro Ota @oota_ken

やらない夫:それは調べたので、Ultimateの評価版使ってみた。抜かりはない。例のNEET判定のプログラムを移植してみることにした。では、やる夫とりあえずはじめようか。 #ytdd

2011-02-11 23:49:27
Kenichiro Ota @oota_ken

やる夫:まず、空のプロジェクトを作るんだお。まあ、プロジェクトなくてもいいけど、とりあえず、JudgeNeetプロジェクトをクラスライブラリプロジェクトで作るお。 #ytdd

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

やらない夫:そして、ここがVisual StduioのTDDサポートの機能だな。まあ、Eclipseにもあるが、もうちょっと親切な感はある。単体テストプロジェクトをJudgeNeet.Testsという名前で作る。 #ytdd

2011-02-11 23:51:11
Kenichiro Ota @oota_ken

やる夫:JudgeNeet.Testプロジェクトの中に、JudgeNeetTestというテストクラスを作るお。これもテストの追加で行けるお。 #ytdd

2011-02-11 23:52:42
Kenichiro Ota @oota_ken

やらない夫:そうするとひな形が、できるので、まずテストメソッドのテスト名を変更だ。 public void 年齢が15歳以上34歳以下の人をニートと判定すること() これはJava版と一緒だな。 #ytdd

2011-02-11 23:53:22
Kenichiro Ota @oota_ken

やる夫:ニートの判定の引数にPersonクラスというのはやりすぎなので、NeetConditionぐらいがいいという話があったので、判定用の条件クラスはNeetConditionとするお #ytdd

2011-02-11 23:54:35
Kenichiro Ota @oota_ken

やらない夫:NeetCondition yaruo = new NeetCondition() { Age = 23, HasIncome = false, Commuting = false, Married = false, JobHunting = fals };#ytdd

2011-02-11 23:55:26
Kenichiro Ota @oota_ken

やる夫:こ、これはどう考えてもコンパイルエラーだお!! #ytdd

2011-02-11 23:55:43
Kenichiro Ota @oota_ken

阿部さん:これまた、Eclipseと同じで、クラスとプロパティーはホイホイって作れちゃうだな。赤になっているところをクリックして、新しい型の生成を選んで、JudgeNeetプロジェクトを選べば、NeetCondtionクラスができる #ytdd

2011-02-11 23:58:38
ぐるぐる系SQL @bleis

ちなみにShift+Alt+F10というショートカットも便利!RT @oota_ken: 阿部さん:(略)赤になっているところをクリックして、新しい型の生成を選んで、JudgeNeetプロジェクトを選べば、NeetCondtionクラスができる #ytdd

2011-02-12 00:00:10
Kenichiro Ota @oota_ken

阿部さん:プロパティーはさらに楽だな。ここら辺はgetter, setterのJavaよりエレガントかもしれない。setうんちゃらの記述よりも、名前付き引数で初期化しているように見えて(たぶん実際は違うw)、可読性も上がっているだろう? #ytdd

2011-02-12 00:00:15
Kenichiro Ota @oota_ken

やらない夫:ここら辺は好き好きだと思うが、やはりJavaより細かいところがうまく改善されている感はあるな・・・くやしいが #ytdd

2011-02-12 00:00:56
Kenichiro Ota @oota_ken

やらない夫:そうだ。できる。最初は例外を投げるスタブコードができるので、まず、それができたら、実行。レッド、そして、次にreturn true;グリーン。 #ytdd

2011-02-12 00:02:38
Kenichiro Ota @oota_ken

やる夫:そして、やらない夫の new NeetCondition() { Age = 35, HasIncome = false, Commuting = false, Married = false, JobHunting = false }; のケースを付け加えて、#ytdd

2011-02-12 00:03:21
Kenichiro Ota @oota_ken

やらない夫:リファクタリングしていけば出来上がりだな。単独のNUnitとかに比べて便利なのは、 EclipseのJUnit機能と同じようにVSに統合されているから、実行や問題に飛ぶのも容易だということだな。 #ytdd

2011-02-12 00:04:39
Kenichiro Ota @oota_ken

やる夫:最終的にはこんな感じなったお。 やらない夫、C#はHello Worldしか書いたことないって聞いていたからどうなることかと思ったけど、案外できたお。 #ytdd http://twitpic.com/3ynv1s

2011-02-12 00:07:09
拡大