手順
- 実装クラスのインスタンスを作成する
- privateメソッドのインスタンスを作成する
- privateメソッドへのアクセスを許可する
- インスタンス化したメソッドに実装クラスのインスタンスと、メソッドの引数を渡す
サンプルコード
TargetClass.java
private String privateMethod(String message) {
return "Input: " + message;
}
TargetClassTest.java
@Test
public void privateMethodTest() {
// 1. 実装クラスのインスタンスを作成する
TargetClass targetClass = new TargetClass();
// 2. privateメソッドのインスタンスを作成する
Method privateMethod = TargetClass.class.getDeclaredMethod("privateMethod", String.class);
// 3. privateメソッドへのアクセスを許可する
privateMethod.setAccessible(true);
// 4. インスタンス化したメソッドに実装クラスのインスタンスと、メソッドの引数を渡す
String actual = (String) privateMethod.invoke(targetClass, "Oh my god.");
String expected = "Input: Oh my god.";
// Assert
assertEquals(expected, actual);
}