Вы можете использовать PowerMockito для установки значений возврата для приватных полей и приватных методов, которые вызываются / используются в приватном методе, который вы хотите протестировать:
Например. Установка возвращаемого значения для частного метода:
MyClient classUnderTest = PowerMockito.spy(new MyClient());
//Set expected return value
PowerMockito.doReturn(20).when(classUnderTest, "myPrivateMethod", anyString(), anyInt());
//This is very important otherwise it will not work
classUnderTest.myPrivateMethod();
//Setting private field value as someValue:
Whitebox.setInternalState(classUnderTest, "privateField", someValue);
Затем, наконец, вы можете проверить, что тестируемый вами закрытый метод возвращает правильное значение на основе указанных значений:
String msg = Whitebox.invokeMethod(obj, "privateMethodToBeTested", "param1");
Assert.assertEquals(privateMsg, msg);
или
Если закрытый метод classUnderTest не возвращает значение, но он установил другое закрытое поле, тогда вы можете получить значение этого частного поля, чтобы проверить, правильно ли оно было установлено:
//To get value of private field
MyClass obj = Whitebox.getInternalState(classUnderTest, "foo");
assertThat(obj, is(notNull(MyClass.class))); // or test value