it-swarm.com.ru

не удается разрешить символ PowerMockRunner

Я пытаюсь использовать 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?

29
Elad Benda2

Вам необходимо импортировать PowerMockRunner следующим образом:

import org.powermock.modules.junit4.PowerMockRunner;
25
David Conrad

PowerMockRunner является частью powermock-module-junit4.jar. Вам нужно явно импортировать банку

Вы можете указать зависимость для этого фляги согласно вашему требованию . Обратитесь к этой ссылке

41
Balaji Katika

Вам просто нужно добавить зависимость Gradle 

testCompile "org.powermock:powermock-module-junit4:1.6.4"

или если вы используете Android Studio версии 3+

testImplementation "org.powermock:powermock-module-junit4:1.6.4"
15
maruti060385

Я столкнулся с этой ошибкой, потому что у меня была только первая из следующих зависимостей, добавленных в мой pom.xml. Убедитесь, что вы добавили обе следующие maven-зависимости для PowerMock в ваш 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>
6
wateva

Я тоже столкнулся с похожей ошибкой. Хотя банки уже находятся в пути к классам, Eclipse не предлагает импортировать класс PowerMockRunner. Он выдавал ошибку «Класс не может быть разрешен для типа». Мне пришлось вручную добавить импорт "org.powermock.modules.junit4.PowerMockRunner". 

0
pavithraCS

Для инструментальных тестов вы должны использовать androidTestImplementation "org.powermock: powermock-module-junit4: 1.6.4"

Но потом я узнал, что вы не можете использовать PowerMock с инструментальными тестами:

PowerMock не будет работать на Android, если вы запускаете его на устройстве с PowerMock использует манипулирование байтовым кодом JVM. Это будет работать, если вы запустите это на JVM, хотя.

( ссылка на эту проблему )

0
Bhola Bhala