无法解析 PowerMockito 但可以解析 PowerMockRunner
Cannot resolve PowerMockito but can PowerMockRunner
我正在尝试使用 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>
这些注释是在测试 class 定义之上添加的:
@RunWith(PowerMockRunner.class)
@PrepareForTest(TestedClass.class)
PowerMockRunner 被成功识别,但是当我尝试使用 PowerMockito
以使用 PowerMockito.withNew()
之类的方法时,PowerMockito
未被识别。
有人知道这里有什么问题吗?
您还应该导入:
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.6.4</version>
<scope>test</scope>
</dependency>
此库包含 API。您导入的那个只包含对jUnit4的支持。
您只添加了与 junit4 的 powermock 集成
为了访问 PowerMockito
,您必须将其添加为单独的依赖项:
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-easymock</artifactId>
<version>${your-powermock-version}</version>
</dependency>
这是 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 !!!
我正在尝试使用 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>
这些注释是在测试 class 定义之上添加的:
@RunWith(PowerMockRunner.class)
@PrepareForTest(TestedClass.class)
PowerMockRunner 被成功识别,但是当我尝试使用 PowerMockito
以使用 PowerMockito.withNew()
之类的方法时,PowerMockito
未被识别。
有人知道这里有什么问题吗?
您还应该导入:
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.6.4</version>
<scope>test</scope>
</dependency>
此库包含 API。您导入的那个只包含对jUnit4的支持。
您只添加了与 junit4 的 powermock 集成
为了访问 PowerMockito
,您必须将其添加为单独的依赖项:
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-easymock</artifactId>
<version>${your-powermock-version}</version>
</dependency>
这是 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 !!!