测试类的私有方法时可以采取两种方式:
  1.修改方法的访问修饰符,将private修改为default或者public。(不推荐)。
  2.在测试类中使用反射调用目标类的私有方法。(推荐)。
  程序实例
  一个计算加法的方法,是私有方法,在测试类中通过反射调用该方法进行测试.
  PS:使用JUnit 3。
  被测试的类:
  package com.mengdd.junit;
  public class Calculator2
  {
  private int add(int a, int b)
  {
  return a + b;
  }
  }
  测试类:
package com.mengdd.junit;
import java.lang.reflect.Method;
import junit.framework.Assert;
import junit.framework.TestCase;
public class CalculatorTest2 extends TestCase
{
public void testAdd()
{
Calculator2 calculator2 = new Calculator2();
// 得到class对象
Class<Calculator2> clazz = Calculator2.class;
// 得到方法
try
{
Method method = clazz.getDeclaredMethod("add", new Class[] {
int.class, int.class });// 这里也可以用:Integer.TYPE
method.setAccessible(true);// 抑制访问修饰符,使得私有方法变为可以访问的
Object result = method.invoke(calculator2, new Object[] { 2, 3 });
Assert.assertEquals(5, result);
}
catch (Exception e)
{
e.printStackTrace();
Assert.fail();
}
}
}