问题描述
我正在尝试使用 powermockito
,但遇到了一些困难。
这是我在 pom.xml
中导入的内容:
<!-- https://mvnrepository.com/artifact/org.powermock/powermock-module-junit4 -->
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.9</version>
<scope>test</scope>
</dependency>
@RunWith(powermockrunner.class)
@PrepareForTest(TestedClass.class)
powermockrunner 已成功识别,但是当我尝试使用 powermockito
以使用 powermockito.withNew()
之类的方法时,powermockito
无法识别。
有人知道这里有什么问题吗?
解决方法
您仅添加了与 junit4 的 powermock 集成
为了访问 PowerMockito
,您必须将其添加为单独的依赖项:
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-easymock</artifactId>
<version>${your-powermock-version}</version>
</dependency>
,
你也应该导入:
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.6.4</version>
<scope>test</scope>
</dependency>
此库包含 API。您导入的那个只包含对 jUnit4 的支持。
,这里是 maven 的完整 PowerMockito 依赖项。
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${your-powermock-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>${your-powermock-version}</version>
<scope>test</scope>
</dependency>
如果您打算使用 PowerMockRule
,那么除了上述依赖项之外,还要添加这些。
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4-rule</artifactId>
<version>${your-powermock-version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-classloading-objenesis</artifactId>
<version>${your-powermock-version}</version>
<scope>test</scope>
</dependency>
PowerMocking 快乐!!!