Когда я попытаюсь запустить второй пример из PowerMock Bypass Encapsulation docs, используя PowerMock 1.5.2 (который мы используем в моей компании), я сразу же получаю бросок ConstructorNotFoundException
. Я попытался перейти на версию 1.6.2 с тем же результатом.Почему пример PowerMock для использования Whitebox.invokeConstructor() создает исключение ConstructorNotFoundException?
Любые идеи, что я могу делать неправильно? (Я не использую ни одну из аннотаций PowerMock, например, и запускаю Java 1.7.) Я уверен, что это должен быть простой контроль с моей стороны ...
Вот мой POM для примера из Документы:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>PowerMock</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-mockito-release-full</artifactId>
<version>1.6.2</version>
</dependency>
</dependencies>
</project>
А вот тестовый класс:
import org.powermock.reflect.Whitebox;
public class Test {
@org.junit.Test
public void test() throws Exception {
PrivateConstructorInstantiationDemo instance = Whitebox.invokeConstructor(PrivateConstructorInstantiationDemo.class, new Class<?>[]{Integer.class}, 43);
System.out.println();
}
}
Вот исключение во всей своей красе:
org.powermock. reflect.exceptions.ConstructorNotFoundException: сбой , чтобы найти конструктор с типами параметров: [[Ljava.lang.Class ;, java.lang.Integer] в org.powermock.reflect.internal.WhiteboxImpl.invokeConstructor (WhiteboxImpl.java: 1354) на org.powermock.reflect.Whitebox.invokeConstructor (Whitebox.java:511) в Test.test (Test.java:6) ...
Любые идеи? Я уверен, что вещь, которую мне не хватает, очень проста ...
Уч. Должно было немного прокрутиться. Благодаря! :) – Christian