ただいま修行中...

ソフトウェア開発において、勉強中で悪戦苦闘の日々

テスト駆動開発(TDD)で気がついたこと

2008-04-10 23:42:49 | プログラミング
最近は、ほとんどテスト駆動開発(TDD)で行っているので、頭の中が整理できていること・リファクタリングをするときにも、ああここは間違っていたなという箇所を思い切って修正することができます。

ただ、テスト駆動開発をしていて感じることは、ある既存のシステムの開発をしているときに、これをしないとテストコードが通らないということがあります。
本来は、それを設定しなくてもテストコードが通らなくてはならないので、こういった実装はすべきではないなと思います。

テスト駆動開発で進めると、こういったメリットや不吉な匂いではありませんが、このような実装はしてはいけないのだなということがよくわかるようになってきました。


最新の画像もっと見る

3 コメント

コメント日が  古い順  |   新しい順
Unknown (かず)
2008-04-18 00:01:29
こんばんは、いつも読ませた貰っています。
下記のコメントについて、教えてください。

>ただ、テスト駆動開発をしていて感じること
>は、ある既存のシステムの開発をしているとき
>に、これをしないとテストコードが通らないと
>いうことがあります。
>本来は、それを設定しなくてもテストコード
>が通らなくてはならないので、こういった実
>装はすべきではないなと思います。

よく理解できず、でも気になったところなので、もう少し詳しく教えてもらえませんか?
返信する
こんなんです。 (ぽんた)
2008-04-19 00:42:57
>かずさん
こんばんは。コメントありがとうございます。

今回の事例でいくと、本来はありえないことですが、
あるクラスが、データベースの操作をするわけでもないのに、データベースを参照している構造になっており、つまり、クラスAがデータベースを参照している構造です。こうなっていると、インスタンスを作成するときに、データベースを必ずセットしてあげなくてはならなくなるので、本来は不要なコードが出来てしまうということです。

つまり意味のないコードが存在しているということです。

もしこういった構造をするのであれば、データベースがクラスを参照しているといった構造にすべきという基本的なことです。
返信する
ありがとうございます(^^) (かず)
2008-04-19 01:44:02
なるほど、理解できました。

確かにTDDでは、パスすることが第一になるので、無駄と分かっているところに、アサーションの無駄も出ますね。

ありがとうございました(^^)
返信する

コメントを投稿