我应该使用哪些Maven工件导入PowerMock?

时间:2013-09-05 20:35:11

标签: java maven mockito 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。我错过了什么罐子?

4 个答案:

答案 0 :(得分:24)

根据PowerMock wiki上的Mockito_Maven页面,请使用:

<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似乎是“utility classes only”,您仍然需要powermock-module-junit4中提供的核心库。

答案 1 :(得分:4)

确保您有此导入:

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

这个罐子有它:

答案 2 :(得分:1)

你在写:

    @PrepareForTest(Class.class);

而不是:

    @PrepareForTest(Class.class)

我有完全相同的问题并以这种方式解决了。

答案 3 :(得分:0)

除了下载 powermock-module-junit4 powermock-api-mockito依赖项以外,下载Mockito依赖项zip文件。直接将jars添加到您的项目中,它应该可以工作并相应地配置pom。

uses blueprints to mount paths in the create_app function