无法解析符号PowerMockRunner

Ela*_*da2 33 java unit-testing mocking mockito powermock

我第一次尝试使用Powermock

我使用build.gradle并添加:

dependencies {
...
    testCompile 'org.mockito:mockito-all:1.9.5'
    testCompile 'org.powermock:powermock-api-mockito:1.5.5'

}
Run Code Online (Sandbox Code Playgroud)

现在我看看我的测试类:

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)
Run Code Online (Sandbox Code Playgroud)

并得到此错误:

@RunWith(PowerMockRunner.class)
             ^
cannot resolve symbol PowerMockRunner 
Run Code Online (Sandbox Code Playgroud)

怎么解决PrepareForTest而不是PowerMockRunner

Bal*_*ika 41

PowerMockRunner是其中的一部分powermock-module-junit4.jar.你需要明确导入这个jar

您可以根据需要指定此jar的依赖项.请参阅此链接.


Dav*_*rad 27

您需要导入PowerMockRunner如下:

import org.powermock.modules.junit4.PowerMockRunner;
Run Code Online (Sandbox Code Playgroud)

  • 我已经有了这个导入.但我仍然没有工作.我也有罐子. (7认同)

mar*_*385 17

您只需添加gradle依赖项

testCompile "org.powermock:powermock-module-junit4:1.6.4"
Run Code Online (Sandbox Code Playgroud)

或者如果您使用的是Android Studio 3+版

testImplementation "org.powermock:powermock-module-junit4:1.6.4"
Run Code Online (Sandbox Code Playgroud)


wat*_*eva 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>
Run Code Online (Sandbox Code Playgroud)