Private方法测试
private方法无法直接测试, 需要通过反射将方法修改为可访问之后再进行测试。
举个栗子:
public class DemoClass {
private int add(int a, int b) {
return a + b;
}
}
测试类:
public class PrivateMethodTest {
@Test
public void testAdd() throws Exception {
Method method = DemoClass.class.getDeclaredMethod("add", int.class, int.class); //通过反射获取方法的定义
method.setAccessible(true); //设置为可访问
Object result = method.invoke(DemoClass.class.newInstance(), 1,1);//调用方法
Assert.assertEquals(2, result); //验证结果
}
}