web-dev-qa-db-fra.com

ne peut pas résoudre le symbole PowerMockRunner

J'essaie d'utiliser Powermock pour la première fois

J'utilise build.gradle et j'ai ajouté:

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

}

maintenant je regarde ma classe de test qui a:

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)

et obtenez cette erreur:

@RunWith(PowerMockRunner.class)
             ^
cannot resolve symbol PowerMockRunner 

comment se fait-il qu'il résolve PrepareForTest et non PowerMockRunner?

29
Elad Benda2

Vous devez importer PowerMockRunner comme suit:

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

PowerMockRunner fait partie de powermock-module-junit4.jar. Vous devez importer explicitement le pot

Vous pouvez spécifier la dépendance de ce fichier en fonction de vos besoins ... Reportez-vous à this link

41
Balaji Katika

Vous avez juste besoin d'ajouter la dépendance de gradle 

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

ou si vous utilisez Android Studio version 3+

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

J'ai rencontré cette erreur car seule la première des dépendances suivantes a été ajoutée dans mon fichier pom.xml. Assurez-vous d’ajouter les deux dépendances maven suivantes de PowerMock à votre fichier 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

J'ai aussi fait face à une erreur similaire. Bien que les fichiers jar soient déjà dans le chemin de classe, Eclipse n'a pas suggéré d'importer la classe PowerMockRunner. Cela donnait l'erreur "La classe ne peut pas être résolue à un type". Je devais ajouter manuellement l'importation "org.powermock.modules.junit4.PowerMockRunner". 

0
pavithraCS

Pour les tests instrumentaux, vous devez utiliser androidTestImplementation "org.powermock: powermock-module-junit4: 1.6.4".

Mais ensuite, j'ai découvert que vous ne pouvez pas utiliser PowerMock avec des tests instrumentaux:

PowerMock ne fonctionnera pas sur Android si vous l'exécutez sur un appareil depuis PowerMock utilise la manipulation de code octet JVM. Cela fonctionnera si vous exécutez sur une JVM cependant.

( lien vers ce problème )

0
Bhola Bhala