//被测试类
public classStaffSignService {
// 待测试的私有函数
privateStringprivateMethod(String a,String b) {
returna + b;
}
}
//测试类
@Test
public voidtestPrivateMethod()throwsNoSuchMethodException,InvocationTargetException,IllegalAccessException {
//声明被测试函数的参数、类型
Class [] parameterTypes = {String.class,String.class};
//测试时使用的参数值
Object[] parameter = {"hello"," world"};
//获取被测试类的class对象
Class classA = StaffSignService.class;
//获取被测试类的实例
StaffSignService instance =newStaffSignService();
//getDeclaredMethod() :获取需要被测试的函数名 && getMethod():只可获取公共的方法
Method method = classA.getDeclaredMethod("privateMethod",parameterTypes);
// 对所有属性设置访问权限 当类中的成员变量为private时 必须设置此项true
method.setAccessible(true);
//调用被测试函数
String result = (String) method.invoke(instance,parameter);
assertTrue(result.equals("hello world"));
}