Какие артефакты Maven следует использовать для импорта PowerMock?

Какие банки нужно добавить в мой pom.xml, чтобы заставить PowerMock работать с Mockito? У меня есть следующие зависимости:

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-all</artifactId>
    <version>1.9.0</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-api-mockito</artifactId>
    <version>1.4.11</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-api-support</artifactId>
    <version>1.4.11</version>
    <scope>test</scope>
 </dependency>

но когда я добавляю аннотацию @PrepareForTest на уровне класса, Eclipse не может ее найти, но она может найти PowerMockito. Какую банку мне не хватает?

Ответ 1

В соответствии с Mockito_Maven на вики PowerMock используйте это:

<properties>
    <powermock.version>1.6.6</powermock.version>
</properties>
<dependencies>
   <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-module-junit4</artifactId>
      <version>${powermock.version}</version>
      <scope>test</scope>
   </dependency>
   <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-api-mockito</artifactId>
      <version>${powermock.version}</version>
      <scope>test</scope>
   </dependency>
</dependencies>

powermock-api-support кажется " только классы утилиты", где вам все еще нужны основные библиотеки, предоставленные в powermock-module-junit4.

Ответ 2

Убедитесь, что у вас есть этот импорт:

import org.powermock.core.classloader.annotations.PrepareForTest;

У этой банки есть:

Ответ 3

Вы пишете:

    @PrepareForTest(Class.class);

Вместо:

    @PrepareForTest(Class.class)

У меня была точно такая же проблема и она была решена таким образом.