【问题标题】:Android : What is the correct gradle configuration to use Mockito to support espresso and unit test both?Android:使用 Mockito 支持 espresso 和单元测试的正确 gradle 配置是什么?
【发布时间】:2017-01-05 01:55:33
【问题描述】:
我正在使用 Espresso 运行几个测试,有些测试是纯 junit,这两个测试都需要 mockito。
想知道如何正确包含 mockito 以支持两者,如果我使用以下配置之一,其他配置将不起作用。
1) testCompile "org.mockito:mockito-core:2.+"
2) androidTestCompile "org.mockito:mockito-core:2.+
【问题讨论】:
标签:
android
android-gradle-plugin
mockito
android-espresso
【解决方案1】:
由于 dexmaker 冲突,我目前在不同的构建类型中配置和运行它们。不确定这是预期/正确的方式还是有更好的方法。
因此,假设您已经有一个“调试”构建类型,请定义另一个,即“espresso”。然后构建 gradle 看起来像:
android {
...
testBuildType 'espresso'
}
...
dependencies {
...
def mockito = "org.mockito:mockito-core:2.+"
espressoCompile(mockito) {
exclude module: 'hamcrest-core'
}
espressoCompile("com.crittercism.dexmaker:dexmaker-mockito:$dexMakerVersion") {
exclude module: 'hamcrest-core'
}
espressoCompile "com.crittercism.dexmaker:dexmaker-dx:$dexMakerVersion"
androidTestCompile "com.android.support.test.espresso:espresso-intents:$espressoVersion"
androidTestCompile "com.android.support.test.espresso:espresso-contrib:$espressoVersion"
androidTestCompile mockito
testCompile mockito
}
当您要运行测试时,需要调用目标 gradle 脚本,即“testDebug”或“installEspressoAndroidTest”。
或者在 Android Studio 中,您需要在切换到“espresso”构建变体后运行 espresso 测试。
希望它对您有所帮助或给您一些想法。