Junit4 私有方法的单元测试

//被测试类

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"));

}

你可能感兴趣的:(Junit4 私有方法的单元测试)