需要测试的私有方法如下:
private boolean checkBound(int lower,int upper,int ...args) {
for (int i:args) {
if ((i < lower)|(i > upper)) {
System.out.print("invalid input");
return false;
}
}
return true;
}
相应的测试方法:
@Test
public void testCheckBound() {
Class<Action> clazz = Action.class;
Method method = null;
try {
method = clazz.getDeclaredMethod("checkBound", new Class[] {int.class,int.class,int[].class});
} catch (NoSuchMethodException | SecurityException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
method.setAccessible(true);
try {
assertTrue((boolean)method.invoke(action,new Object[]{0,7,(Object) new int[] {3}}));
assertFalse((boolean)method.invoke(action,new Object[]{0,7,(Object) new int[] {-1}}));
assertFalse((boolean)method.invoke(action,new Object[]{0,7,(Object) new int[] {8}}));
assertTrue((boolean)method.invoke(action,new Object[]{0,7,(Object) new int[] {1,2,3}}));
assertFalse((boolean)method.invoke(action,new Object[]{0,7,(Object) new int[] {-1,2,6}}));
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
如图所示,可以通过