Android:如何在两个测试代码上都使用Mock?

时间:2019-04-03 03:15:12

标签: android testing junit

我正在使用“ Android Jetpack WorkManager”开发一个Android应用。

我的演示者代码使用它。

我要测试演示者代码。

首先,我尝试使用JUnit测试,但是由于使用了WorkManager,我将其更改为AndroidTest。 以下是我的build.gradle。

dependencies {
    testImplementation 'junit:junit:4.12'
    testImplementation 'org.mockito:mockito-all:1.10.19'
}

在这种情况下,我无法在AndroidTest代码中使用“模拟”。 所以我将依赖项更改为:

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'org.mockito:mockito-all:1.10.19'
}

然后,我不能在JUnit测试代码中使用“模拟”。 所以我尝试了:

dependencies {
    testImplementation 'junit:junit:4.12'
    testImplementation 'org.mockito:mockito-all:1.10.19'
    androidTestImplementation 'org.mockito:mockito-all:1.10.19'
}

这也不行...

我应该怎么做?

2 个答案:

答案 0 :(得分:0)

如果您需要模拟android组件,则可以使用Robolectric在单元测试中进行。

答案 1 :(得分:0)

我找到了一个解决方案:mockito-android

dependency {
    testImplementation 'junit:junit:4.12'
    testImplementation 'org.mockito:mockito-all:1.10.19'
    androidTestImplementation 'org.mockito:mockito-android:2.25.1'
}