首页 > 解决方案 > PowerMockito - Whitebox 使用 int [] 参数获取内部类的构造函数

问题描述

正如标题所提到的,我正在使用 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] 的构造函数

标签: reflectionpowermockitowhite-box-testing

解决方案


Class clazz = Whitebox.getInnerClassType(SomeClass.class, "InnerClass");
Constructor constructor = Whitebox.getConstructor(clazz, SomeClass.class);
InnerClassType innerClass = (InnerClassType) constructor.newInstance(new 
SomeClass());

由于我的内部类不是静态的,它需要外部类的引用。


推荐阅读