我需要在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
。我错过了什么罐子?
答案 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。