Junit3.X 初學 (四) 如何測試類的靜態Static方法
阿新 • • 發佈:2019-02-15
如何測試類的靜態Static方法?
a)將private方法的訪問符改為 default (因為default訪問修飾符課在同一個包中訪問)
b) 用反射機制 method.getDeclaredMethod()
待測試類:
package com.sysu.junit3;
public class PrivateCalculator {
private int add(int a,int b)
{
return a+b;
}
}
測試類:
package com.sysu.junit3; import java.lang.reflect.Method; import junit.framework.Assert; import junit.framework.TestCase; public class PrivateCalculatorTest extends TestCase { private PrivateCalculator calculator = null; @Override protected void setUp() throws Exception { calculator = new PrivateCalculator(); } public void testAdd() { try { Class<PrivateCalculator> classtype = PrivateCalculator.class; Method method = classtype.getDeclaredMethod("add", new Class[] { Integer.TYPE, int.class }); //用反射機制 method.getDeclaredMethod() method.setAccessible(true); //設定 為true ,關閉JVM對訪問規則的遵守。 Integer sum = null; sum = (Integer) method.invoke(calculator, new Object[] { new Integer(19), 81 }); Assert.assertNotNull(sum); Assert.assertEquals(new Integer(100), sum); } catch (Exception ex) { ex.printStackTrace(); Assert.fail(); } } public static void main(String[] args) { junit.awtui.TestRunner.run(PrivateCalculatorTest.class); } }