关闭

私有方法的单元测试

发表于:2015-9-02 09:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:凡尘里的一根葱    来源:51Testing软件测试网采编

  测试类的私有方法时可以采取两种方式:
  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();
}
}
}
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号