JUnit_privateメソッドを単体テストする

リフレクションの使い方 | ひだまりのなか、想ふこと

 

 

// インスタンスの生成
Piyo target = new Piyo();
// 取得するメソッドの引数のクラスオブジェクトを取得
Class argType = {Integer.class, Integer.class, String.class};
// (privateな)hogehoge(Integer, Integer, String)なメソッドを取得
Method method = target.getClass().getDeclaredMethod("hogehoge", argType);
// アクセスを許可
method.setAccessible(true);
// 実行するメソッドの引数を設定
Object args = {new Integer(0), new Integer(0), null};

// hogehoge(Integer, Integer, String)メソッドの実行
method.invoke(target, args);

 

この下の部分で自分も同じくはまった。

memo


はまったところ。

method.invoke(target, args);

method.invoke(method, args);

として実行したら、

java.lang.IllegalArgumentException: object is not an instance of declaring class


で怒られました。
javadocで確認したら、そのメソッドを持つ、
クラスのインスタンスを渡せとのこと。