JUnit3 私有方法的单元测试

 

私有方法的单元测试

测试类的私有方法时可以采取两种方式:

  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();
        }
    }
}

参考资料

  圣思园张龙老师视频。

原文地址:https://www.cnblogs.com/mengdd/p/3006191.html