junit 测试私有方法


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

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();
        }
    }
}
Joyce /
Published under (CC) BY-NC-SA in categories junit  tagged with junit