- ベストアンサー
Junit Testの時privateで宣言したメソッドのテスト方法
お疲れ様です。 junitテストクラスの作成する時 まずテスト対象のクラスをobject生成しますが、 privateで宣言してるメソッドはobject生成後も呼べないから どうやってテスト出来るか分かりません。。。。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>privateで宣言してるメソッドはobject生成後も呼べないから おっしゃるように、基本的にprivateなメソッドは外部クラスからは 呼べないわけですから、junitテストで独立に呼び出してテストする 必要(意味)がないというのがUnitTestの考え方だと思います。 あるオブジェクトの全てのpublicメソッドをテストすれば、 その内部にコーディングされているprivateメソッドは、間接的に必ず 最低1度は実行されるはずですから、同時にテストされているということです。 (どのprivateメソッドが呼ばれるかを意識してテストケースを記述する) 逆に、privateなメソッドをリフレクション等を使って直接呼び出してしまうと、 publicメソッドから(間接的に)呼ばれる場合には、(通常の実行状態では) ありえない引数を渡すことも可能になりますので、UnitTest自身の信頼性がなくなります。
その他の回答 (1)
- yuji
- ベストアンサー率37% (64/169)
回答No.1
私は、リフレクションを使ってprivateのメソッドのテストを 行っています。