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(); } } }
参考资料
圣思园张龙老师视频。