• ベストアンサー

Junit Testの時privateで宣言したメソッドのテスト方法

お疲れ様です。 junitテストクラスの作成する時 まずテスト対象のクラスをobject生成しますが、 privateで宣言してるメソッドはobject生成後も呼べないから どうやってテスト出来るか分かりません。。。。

質問者が選んだベストアンサー

  • ベストアンサー
  • HarukaV49
  • ベストアンサー率53% (48/89)
回答No.2

>privateで宣言してるメソッドはobject生成後も呼べないから おっしゃるように、基本的にprivateなメソッドは外部クラスからは 呼べないわけですから、junitテストで独立に呼び出してテストする 必要(意味)がないというのがUnitTestの考え方だと思います。 あるオブジェクトの全てのpublicメソッドをテストすれば、 その内部にコーディングされているprivateメソッドは、間接的に必ず 最低1度は実行されるはずですから、同時にテストされているということです。 (どのprivateメソッドが呼ばれるかを意識してテストケースを記述する) 逆に、privateなメソッドをリフレクション等を使って直接呼び出してしまうと、 publicメソッドから(間接的に)呼ばれる場合には、(通常の実行状態では) ありえない引数を渡すことも可能になりますので、UnitTest自身の信頼性がなくなります。

その他の回答 (1)

  • yuji
  • ベストアンサー率37% (64/169)
回答No.1

私は、リフレクションを使ってprivateのメソッドのテストを 行っています。

関連するQ&A

専門家に質問してみよう