web-dev-qa-db-fra.com

Android Studio/Gradle avec powermock

Je n'ai trouvé aucune information sur la configuration de Powermock avec Android Studio/Gradle. Tout ce que j'ai essayé a abouti à des exceptions de construction.

Quelqu'un pourrait-il montrer une manière correcte de le faire? 

Merci.

40
midnight

Je poste pour aider les futurs lecteurs, vous devez ajouter ces dépendances pour powermock dans AS

testCompile 'junit:junit:4.12'
testCompile 'org.powermock:powermock-api-mockito:1.6.2'
testCompile 'org.powermock:powermock-module-junit4-rule-agent:1.6.2'
testCompile 'org.powermock:powermock-module-junit4-rule:1.6.2'
testCompile 'org.powermock:powermock-module-junit4:1.6.2'
51
Bhargav

Ajoutez les lignes suivantes à votre bloc de dépendances {}:

testCompile 'junit:junit:4.12'
testCompile 'org.powermock:powermock:1.6.5'
testCompile 'org.powermock:powermock-module-junit4:1.6.5'

Et si vous souhaitez utiliser PowerMockito, ajoutez la ligne suivante:

testCompile 'org.powermock:powermock-api-mockito:1.6.5'
23
plátano plomo

Dans le script de construction, ajoutez ce qui suit:

sourceSets {
    unitTest {
        Java.srcDir file('*your test directory*') //for example: tests/Java
    }
}

Android {
    sourceSets {
        instrumentTest.setRoot('*your root test directory*') //for example: tests
    }
}

repositories {
    mavenCentral()
}

dependencies {
    testCompile 'junit:junit:4.11'
    testCompile 'org.powermock:powermock-mockito-release-full:1.4.9'
}

Ensuite, faites gradle unitTest à partir de la ligne de commande.

J'espère que ça marche. Si ce n'est pas le cas, affichez le résultat de la ligne de commande.

4
sasfour

Si vous voulez utiliser des versions plus récentes de Mockito, vous pouvez utiliser quelque chose comme ceci, qui est adapté des docs mockito 2 Powermock . Assurez-vous d’utiliser la version correcte de PowerMock pour la version donnée de Mockito .

...
testCompile 'junit:junit:4.12'
testCompile "org.mockito:mockito-core:2.4.0"
testCompile 'org.powermock:powermock-module-junit4:1.7.0RC2',
            'org.powermock:powermock-api-mockito2:1.7.0RC2'
4
m01
// mockito
testImplementation 'org.mockito:mockito-core:2.4.0'
androidTestImplementation 'org.mockito:mockito-core:2.4.0'
// PowerMock
testImplementation 'org.powermock:powermock-core:1.7.0RC2'
testImplementation 'org.powermock:powermock-module-junit4:1.7.0RC2'
testImplementation 'org.powermock:powermock-api-mockito2:1.7.0RC2'
1
J.zhang

J'ai utilisé la même chose que @Bhargav avec quelques fonctionnalités supplémentaires ajoutées

  • couverture de code pour le scénario de test (si testCoverageEnabled est vrai, alors il active l'outil Jacoco)
  • le test unitaire testera uniquement votre code et ne dépendra pas d'un comportement particulier de la plate-forme Android en utilisant (UnitTests.returnDefaultValues ​​= true _)

Ajoutez ces lignes marquées dans build.gradle pour activer JUnit, PowerMockito, JaCoCo

 enter image description here  enter image description here

0
anand krish