java私有方法单元测试

荷楠仁 / 2023-08-18 / 原文

使用junit5,类的代码为

package com.sysush.tool;
public class Tool1 {
private void helloworld() {
System.out.println("hello world");
}
private int add(Integer a, Integer b) {
return a + b;
}
}

测试代码为:

import org.junit.jupiter.api.Test; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Tool1Test { private Tool1 tool = new Tool1(); @Test public void noPara() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { Method privateMethod = tool.getClass().getDeclaredMethod("helloworld"); privateMethod.setAccessible(true); privateMethod.invoke(tool); } @Test public void para() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { Method privateMethod = tool.getClass().getDeclaredMethod("add", Integer.class, Integer.class); privateMethod.setAccessible(true); Object a = privateMethod.invoke(tool, 1, 2); System.out.println(a); } }