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

问题描述 投票:0回答:4

我需要在我的

pom.xml
中添加哪些 jar 才能让 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
。我缺少什么罐子?

java maven mockito powermock
4个回答
38
投票

根据PowerMock wiki上的Mockito2-Maven页面,使用这个:

<properties>
    <powermock.version>2.0.9</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-mockito2</artifactId>
      <version>${powermock.version}</version>
      <scope>test</scope>
   </dependency>
</dependencies>

如果您需要 EasyMock、TestNG 或 Mockito 1.x(使用 1.x 版本的 Powermock),请务必检查 GitHub 发布选项卡中的最新版本号,并检查入门 wiki 页面的 Maven 部分 .

powermock-api-support

似乎是“
仅实用程序类”,您仍然需要powermock-module-junit4
中提供的核心库。


4
投票
确保您有此导入:

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

这个罐子里有:

  • powermock-mockito-1.5.1-full.jar

1
投票
您正在写:

@PrepareForTest(Class.class);

而不是:

@PrepareForTest(Class.class)

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


0
投票
除了

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

Power Mockito 依赖项 - 所有 Jars

© www.soinside.com 2019 - 2024. All rights reserved.