カテゴリー「*TDD の練習」の2件の記事

実際に TDD してみる練習問題 ( ソースコード付き )

2009年8月17日 (月)

[TDD の練習] WinForm を改造したい ~ GUI に埋もれたロジックを分離して、ユニットテストを書く

Randommove6_01 ネタ元 ⇒ わんくま掲示板 : PictureBoxを左右に往復するループ

質問されたかたはプログラミングの初心者らしく、 どこかから持ってきたサンプルコードを少し改造しようとして苦労しておられました。
※ サンプルコードを動かしてみる → 改造してみる という手法は、 プログラミングに上達するための有効な手段のひとつだと思います。 私も、 いまだによくやります。
掲示板では、 かなり紆余曲折はありましたが、 最後には御自分の納得のいく動きをするコードになったようです。 その途中で 「消えてしまった」 問題を、 ここでは扱ってみます。

・ オリジナルのソース : フォーム上を、 一定速度で画像が左右に動く。
・ やりたいこと : 一回ごとに移動する距離を、 乱数で決めさせたい。
※ 途中で、 「一回ごと」 が 「片道のあいだ中」 に仕様変更され、 「難しい問題」 が消えてしまいました。

今回は、 練習問題というよりも、 GUI からロジックを切り離すリファクタリングを、 ユニットテストのサポート無しで慎重に行う手順を見ていただけたら、 と思います。
回答例のソリューション一式はこちら → WankumaHomework20090810_20090817.zip [69,127バイト]
※ VB 2008 Express + NUnit 2.5 用

続きを読む "[TDD の練習] WinForm を改造したい ~ GUI に埋もれたロジックを分離して、ユニットテストを書く"

| | コメント (2) | トラックバック (0)

2009年6月16日 (火)

[TDD の練習] 文字を変換する

ネタ元 ⇒ わんくま掲示板 : 以下について教えてください

もうタイトルからして、 学校の課題だか宿題だかって感じがビンビンしますけど。
仕様としては、 こんな感じらしい。

・ 大文字は小文字に、 数字は '0', '1', '2' ... を '9', '8', '7' ... と反転させる。
・ ただし、 '#' 以降の文字は変換しない。
・ 例として "Abc012_59F_#012Gh" を渡した場合の戻り値は "abc987_40f_#012Gh" となる。

で。 みきぬ さんが VB の Select ~ Case で綺麗に条件分岐を書いてくれたり、 επιστημηさんが華麗なワンライナーのワザを披露してくれたりしてます。 なんかもう、 短さ競争になってますが… ここはひとつ、 TDD やって長くする方向で。

続きを読む "[TDD の練習] 文字を変換する"

| | コメント (0) | トラックバック (0)