Private方法測試
private方法無法直接測試, 需要通過反射將方法修改爲可訪問之後再進行測試。
舉個栗子:
public class DemoClass {
private int add(int a, int b) {
return a + b;
}
}
測試類:
public class PrivateMethodTest {
@Test
public void testAdd() throws Exception {
Method method = DemoClass.class.getDeclaredMethod("add", int.class, int.class); //通過反射獲取方法的定義
method.setAccessible(true); //設置爲可訪問
Object result = method.invoke(DemoClass.class.newInstance(), 1,1);//調用方法
Assert.assertEquals(2, result); //驗證結果
}
}