Example of writing JUnit Test-cases for private members of a class
// ClassA.java
public class ClassA {
private int privateInteger = -1;
private String privateString;
private void methodA(String s, int a, int b) {
this.privateString = s;
this.privateInteger = a * b;
}
}
//ClassATest.java
@org.junit.Test
public void testMethodA() {
ClassA classA = new ClassA();
java.lang.reflect.Method methodA;
try {
methodA = ClassA.class.getDeclaredMethod("methodA", String.class, int.class, int.class);
java.lang.reflect.Field privateIntField = ClassA.class.getDeclaredField("privateInteger");
methodA.setAccessible(true);
privateIntField.setAccessible(true);
methodA.invoke(classA, "Hi", 2, 3);
org.junit.Assert.assertEquals(6, privateIntField.getInt(classA));
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (java.lang.reflect.InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
// ClassA.java
public class ClassA {
private int privateInteger = -1;
private String privateString;
private void methodA(String s, int a, int b) {
this.privateString = s;
this.privateInteger = a * b;
}
}
//ClassATest.java
@org.junit.Test
public void testMethodA() {
ClassA classA = new ClassA();
java.lang.reflect.Method methodA;
try {
methodA = ClassA.class.getDeclaredMethod("methodA", String.class, int.class, int.class);
java.lang.reflect.Field privateIntField = ClassA.class.getDeclaredField("privateInteger");
methodA.setAccessible(true);
privateIntField.setAccessible(true);
methodA.invoke(classA, "Hi", 2, 3);
org.junit.Assert.assertEquals(6, privateIntField.getInt(classA));
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (java.lang.reflect.InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
No comments:
Post a Comment