Java Testing Notes
Ask or search…
Comment on page


Used to call an private method, just a wrapper on Java Reflection API's
// Example Source Class
public class ExampleClass {
private int getHeight() {
// Lets say we have a generic method which provides different result base on the provided id
final CustomClass customClassInstance = new CustomClass();
return customClass.getHeight();
We can use Whitebox.invokeMethod() to execute that method, here an example:
public class ExampleClassTest {
private ExampleClass classUnderTest;
public void setUp() throws Exception {
// Create constructor of ExampleClass
classUnderTest = new ExampleClass();
public void getHeight_shoudReturnHeightOfView() throws NoSuchMethodException {
final int expectedHeight = 100;
// Given
final CustomClass mckCustomClass = Mockito.mock(CustomClass.class);
// Make sure you match exact parameters while mocking (same as we do for Mockito.mock statements).
// There is also withArguments(first, second, ....)
// and withAnyArguments() for cases when you dont care for arguments passed.
final int actualResult = Whitebox.invokeMethod(classUnderTest, "getHeight");;
Assert.assertEquals(expectedHeight, actualResult);
Note: you should not call invokeMethod() unnecessarily, try to follow code execution flow to get to any private method.