У меня есть частный метод, который принимает список целочисленного значения, возвращает мне список целочисленного значения. Как я могу использовать power mock для его проверки. Я новичок в powermock. Могу ли я сделать тест с легким макетом.? как..
Тестирование частного метода с использованием power mock, который возвращает список целых чисел
Ответ 1
Из документация в разделе "Общедоступная обходная инкапсуляция":
Использовать метод Whitebox.invokeMethod(..) для вызова частного метода экземпляр или класс.
Вы также можете найти примеры в том же разделе.
Ответ 2
Вот полный пример, как это сделать:
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.powermock.reflect.Whitebox;
class TestClass {
private List<Integer> methodCall(int num) {
System.out.println("Call methodCall num: " + num);
List<Integer> result = new ArrayList<>(num);
for (int i = 0; i < num; i++) {
result.add(new Integer(i));
}
return result;
}
}
@Test
public void testPrivateMethodCall() throws Exception {
int n = 10;
List result = Whitebox.invokeMethod(new TestClass(), "methodCall", n);
Assert.assertEquals(n, result.size());
}
Ответ 3
Whitebox.invokeMethod(myClassToBeTestedInstance, "theMethodToTest", expectedFooValue);