28

我需要添加什么罐子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

4 回答 4

35

根据 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似乎是“仅实用程序类”,您仍然需要powermock-module-junit4.

于 2013-09-05T20:41:39.657 回答
4

确保你有这个导入:

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

这个罐子有它:

于 2013-11-12T23:54:18.033 回答
1

你在写:

    @PrepareForTest(Class.class);

代替:

    @PrepareForTest(Class.class)

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

于 2013-11-12T19:48:08.240 回答
0

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

Power Mockito 依赖项 - 所有罐子

于 2018-07-30T11:49:30.417 回答