我第一次尝试使用Powermock
我使用build.gradle并添加:
dependencies {
...
testCompile 'org.mockito:mockito-all:1.9.5'
testCompile 'org.powermock:powermock-api-mockito:1.5.5'
}
现在我看看我的测试类:
import org.junit.Before;
import org.junit.runner.RunWith;
import org.mockito.Matchers;
import org.powermock.core.classloader.annotations.PrepareForTest;
@RunWith(PowerMockRunner.class)
@PrepareForTest(GeoUtils.class)
并收到此错误:
@RunWith(PowerMockRunner.class)
^
cannot resolve symbol PowerMockRunner
它如何解析PrepareForTest
而不是PowerMockRunner
?
答案 0 :(得分:41)
PowerMockRunner是powermock-module-junit4.jar
的一部分。您需要显式导入此jar
您可以根据需要指定此jar的依赖项。 请参阅此link。
答案 1 :(得分:26)
您需要按如下方式导入PowerMockRunner
:
import org.powermock.modules.junit4.PowerMockRunner;
答案 2 :(得分:15)
您只需添加gradle依赖
testCompile "org.powermock:powermock-module-junit4:1.6.4"
或者如果您使用的是Android Studio版本3 +
testImplementation "org.powermock:powermock-module-junit4:1.6.4"
答案 3 :(得分:7)
我遇到了这个错误,因为我的pom.xml中只添加了以下第一个依赖项。请确保为PowerMock添加以下maven依赖项到pom.xml。
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.6.3</version>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.6.3</version>
</dependency>
答案 4 :(得分:1)
我也遇到了类似的错误。虽然罐子已经在类路径中,但eclipse并没有建议导入PowerMockRunner类。它给出了错误&#34; Class无法解析为类型&#34;。我不得不手动添加导入&#34; org.powermock.modules.junit4.PowerMockRunner
&#34;。
答案 5 :(得分:0)
对于工具测试,您必须使用androidTestImplementation“ org.powermock:powermock-module-junit4:1.6.4”
但是后来我发现,您不能将PowerMock用于仪器测试:
如果您在设备上运行PowerMock,则无法在Android上运行 PowerMock正在使用JVM字节码操作。如果您运行它将正常工作 但是它在JVM上。
答案 6 :(得分:0)
我刚刚遇到了完全相同的问题,并且两个依赖项都已包含在 pom.xml 中。
对我来说,结果是 Intellij 缓存问题,并使缓存无效对我有用。
步骤如下:
IntelliJ -> File Menu -> Invalidate Caches -> Invalidate and Restart