web-dev-qa-db-ja.com

powermockを使用したAndroidStudio / Gradle

Android Studio/Gradleでpowermockをセットアップする方法についての情報が見つかりませんでした。これまでに試みたすべてがビルド例外になりました。

誰かがそれを行う正しい方法を示すことができますか?

ありがとう。

42
midnight

私は将来の読者を支援するために投稿しています、あなたはASのpowermockのためにこれらの依存関係を追加する必要があります

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'
54
Bhargav

次の行を依存関係{}ブロックに追加します。

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

PowerMockitoを使用する場合は、次の行を追加します。

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

Mockitoのより新しいバージョンを使用したい場合は、 mockito 2 Powermock docs から適応したこのようなものを使用できます。 Mockitoの特定のバージョンに対応するPowerMockの正しいバージョン を必ず使用してください。

...
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'
5
m01

ビルドスクリプトで、次を追加します。

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'
}

次に、コマンドラインからgradle unitTestを実行します。

うまくいくことを願っています。表示されない場合は、コマンドラインの出力を投稿してください。

4
sasfour
// 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'
3
J.zhang

私はいくつかの追加機能で追加された@Bhargavと同じものを使用しました

  • テストケースのコードカバレッジ(testCoverageEnabledtrueの場合、有効にしますJacocoツール)
  • ユニットテストはコードのみをテストし、UnitTests.returnDefaultValues = true)を使用してAndroidプラットフォームの特定の動作に依存しません

build.gradleにこのマークされた行を追加して、JUnit, PowerMockito, JaCoCoを有効にします

enter image description hereenter image description here

0
anand krish