「やる夫で学ぶTDD」七日目 プログラマに優しいNEET判定をC#でやってみるよ #ytdd
今日はC#でやる夫のTDDペアプロやってみるよ。ということで、やる夫で学ぶTDD 第7日目 プログラマ優しいNEET判定をC#でやってみるよ #ytdd
2011-02-11 23:40:59やらない夫:デブサミではC#erもな方も来るかもしれないと思い、C#で最低限度TDDできるようにVisual Studioの勉強をしていたのだ。 #ytdd
2011-02-11 23:42:02やらない夫:ペアプロTDDの門戸は広く開かれるべきなので、仕事で使わなくても学んでおいた方がよいかなと。 昔、・・・.NETになる前ぐらいは使っていたぞ。#ytdd
2011-02-11 23:43:37やる夫:そんな昔の知識通用しないお!やらない夫が嫌がっているCOBOLerのOSSANたちみたいに昔の知識押し付けてくるの勘弁だお! #ytdd
2011-02-11 23:44:23阿部さん:今日は葛西臨海公園のベンチに座っていたが、さすがこの寒さ、誰もいい男は来なかったな。おっとところで、TDDの機能はVisual Studio Professional以上だと便利なのがついているぜ。 #ytdd
2011-02-11 23:48:12やらない夫:それは調べたので、Ultimateの評価版使ってみた。抜かりはない。例のNEET判定のプログラムを移植してみることにした。では、やる夫とりあえずはじめようか。 #ytdd
2011-02-11 23:49:27やる夫:まず、空のプロジェクトを作るんだお。まあ、プロジェクトなくてもいいけど、とりあえず、JudgeNeetプロジェクトをクラスライブラリプロジェクトで作るお。 #ytdd
2011-02-11 23:50:11やらない夫:そして、ここがVisual StduioのTDDサポートの機能だな。まあ、Eclipseにもあるが、もうちょっと親切な感はある。単体テストプロジェクトをJudgeNeet.Testsという名前で作る。 #ytdd
2011-02-11 23:51:11やる夫:JudgeNeet.Testプロジェクトの中に、JudgeNeetTestというテストクラスを作るお。これもテストの追加で行けるお。 #ytdd
2011-02-11 23:52:42やらない夫:そうするとひな形が、できるので、まずテストメソッドのテスト名を変更だ。 public void 年齢が15歳以上34歳以下の人をニートと判定すること() これはJava版と一緒だな。 #ytdd
2011-02-11 23:53:22やる夫:ニートの判定の引数にPersonクラスというのはやりすぎなので、NeetConditionぐらいがいいという話があったので、判定用の条件クラスはNeetConditionとするお #ytdd
2011-02-11 23:54:35やらない夫:NeetCondition yaruo = new NeetCondition() { Age = 23, HasIncome = false, Commuting = false, Married = false, JobHunting = fals };#ytdd
2011-02-11 23:55:26阿部さん:これまた、Eclipseと同じで、クラスとプロパティーはホイホイって作れちゃうだな。赤になっているところをクリックして、新しい型の生成を選んで、JudgeNeetプロジェクトを選べば、NeetCondtionクラスができる #ytdd
2011-02-11 23:58:38ちなみにShift+Alt+F10というショートカットも便利!RT @oota_ken: 阿部さん:(略)赤になっているところをクリックして、新しい型の生成を選んで、JudgeNeetプロジェクトを選べば、NeetCondtionクラスができる #ytdd
2011-02-12 00:00:10阿部さん:プロパティーはさらに楽だな。ここら辺はgetter, setterのJavaよりエレガントかもしれない。setうんちゃらの記述よりも、名前付き引数で初期化しているように見えて(たぶん実際は違うw)、可読性も上がっているだろう? #ytdd
2011-02-12 00:00:15やらない夫:ここら辺は好き好きだと思うが、やはりJavaより細かいところがうまく改善されている感はあるな・・・くやしいが #ytdd
2011-02-12 00:00:56やらない夫:そうだ。できる。最初は例外を投げるスタブコードができるので、まず、それができたら、実行。レッド、そして、次にreturn true;グリーン。 #ytdd
2011-02-12 00:02:38やる夫:そして、やらない夫の new NeetCondition() { Age = 35, HasIncome = false, Commuting = false, Married = false, JobHunting = false }; のケースを付け加えて、#ytdd
2011-02-12 00:03:21やらない夫:リファクタリングしていけば出来上がりだな。単独のNUnitとかに比べて便利なのは、 EclipseのJUnit機能と同じようにVSに統合されているから、実行や問題に飛ぶのも容易だということだな。 #ytdd
2011-02-12 00:04:39やる夫:最終的にはこんな感じなったお。 やらない夫、C#はHello Worldしか書いたことないって聞いていたからどうなることかと思ったけど、案外できたお。 #ytdd http://twitpic.com/3ynv1s
2011-02-12 00:07:09