测试类的私有方法时可以采取两种方式:
1、修改方法的访问修饰符,将private修改为default或者public(但不推荐采取这种方法)。
2、使用反射在测试类中调用目标类的私有方法(推荐),如下:
package com.junit.test;
public class Calculator2 {
private int add(int a, int b) {
return a + b;
}
}
package com.junit.test;
import java.lang.reflect.Method;
import junit.framework.TestCase;
public class TestCalculator2 extends TestCase {
public void testAdd() {
Calculator2 cal2 = new Calculator2();
Class calz = Calculator2.class;
try {
Method method = calz.getDeclaredMethod("add", new Class[] { Integer.TYPE, Integer.TYPE });
method.setAccessible(true);
Object result = method.invoke(cal2, new Object[] { 2, 3 });
assertEquals(5, result);
} catch (Exception e) {
fail();
}
}
}