重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

お疲れ様です。

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

A 回答 (2件)

>privateで宣言してるメソッドはobject生成後も呼べないから



おっしゃるように、基本的にprivateなメソッドは外部クラスからは
呼べないわけですから、junitテストで独立に呼び出してテストする
必要(意味)がないというのがUnitTestの考え方だと思います。

あるオブジェクトの全てのpublicメソッドをテストすれば、
その内部にコーディングされているprivateメソッドは、間接的に必ず
最低1度は実行されるはずですから、同時にテストされているということです。
(どのprivateメソッドが呼ばれるかを意識してテストケースを記述する)

逆に、privateなメソッドをリフレクション等を使って直接呼び出してしまうと、
publicメソッドから(間接的に)呼ばれる場合には、(通常の実行状態では)
ありえない引数を渡すことも可能になりますので、UnitTest自身の信頼性がなくなります。
    • good
    • 0

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


行っています。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!