PowerMockito - Whitebox Get Конструктор внутреннего класса с параметром int [] - PullRequest
0 голосов
/ 19 октября 2018

Как упоминается в заголовке, я использую PowerMockito для тестирования класса, который содержит внутренний закрытый класс.Внутренний класс имеет конструктор с параметром int [].Ниже приведен код.

final Class clazz = Whitebox.getInnerClassType(SomeClass.class, "InnerClass");
final Constructor constructor = Whitebox.getConstructor(clazz, int[].class);
final Object innerClass = constructor.newInstance(SORT_ORDER);

//This is the TARGET INNER CLASS' CONSTRUCTOR
public InnerClass(int[] sortOrder) {
    super(sortOrder);
}

Код генерирует

org.powermock.reflect.exceptions.ConstructorNotFoundException: не удалось найти конструктор с типами параметров [[I] в классе

1 Ответ

0 голосов
/ 19 октября 2018
Class clazz = Whitebox.getInnerClassType(SomeClass.class, "InnerClass");
Constructor constructor = Whitebox.getConstructor(clazz, SomeClass.class);
InnerClassType innerClass = (InnerClassType) constructor.newInstance(new 
SomeClass());

Поскольку мой внутренний класс не был статическим, для него требовалась ссылка на внешний класс.

...