privateメソッドのテストについて

tddbc岡山から派生した議論
27
しんすく(け) さん。 @snsk

@kyon_mm これは書き始めるとすぐ直面する問題な気がします。いまんとこpublicだけでいーんじゃないか派。

2012-08-25 17:23:06
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@snsk publicでいいとは思うのですが、どういうステップはゆるしているかどうかっていうのが設計とテストカバレッジとして重要だと思うのですよ。なので「初めからprivateにすることをゆるすかどうか」ってカバレッジの保証としてはかなり重要なわけで。

2012-08-25 17:28:56

やさぐれ番長との会話

きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

へぇ。。。 RT: Q:プライベートメソッドのテストはどうするのか? A:する必要がない #tddbc (via @patorash)

2012-08-25 16:33:21
BiKiSUKE THE END @bikisuke

@kyon_mm どのような見解をお持ちですか?

2012-08-25 19:08:13
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@bikisuke 状況次第というもとに、静的解析ツールの使用、privateにする前にテスト済であることの2点が守れていないと、両手あげて賛成は出来ないですね。 なのでテストコードないプロダクトとかリファクタリングで必要になることはままあると思ってます。

2012-08-25 19:14:46
BiKiSUKE THE END @bikisuke

@kyon_mm ああ、なるほど。private にする前にテスト済みであることってのは、何で確認するんですか?

2012-08-25 20:21:57
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@bikisuke 約束でしかないですねー。実証するための方法はあると思ってますけど、現実的ではないと思ってます。なので、そこは信頼するしかないって感じ。出来ないならまだpublicのほうがいいかと思ってます。

2012-08-25 20:26:11
BiKiSUKE THE END @bikisuke

@kyon_mm ふぅむ。private の処理は public のテストの中で確認するってのは乱暴な考えですかね?複雑な制御や計算とかテストしたいような private メソッドは、そういう役割のクラスの public として定義すれば良いと思うんだ。そうでないのも同じ基準?

2012-08-25 20:38:39
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@bikisuke 多分ほとんど同意見です。ただ、それは結果であって「本当にprivateが網羅的でなくてもいいけど、テストできているか」をテストコードのみでは不透明感が強いので、そこにはルールというか、もう少し透明感がほしいのが自分の意見です。

2012-08-25 20:42:37
BiKiSUKE THE END @bikisuke

@kyon_mm ふむふむ。違いはテストエンジニアとやさぐれエンジニアの差みたいなもんですかね。腹落ちしました。( ̄(工) ̄)

2012-08-25 20:51:30