如何为Kotlin和Android设置Mockito

时间:2017-11-14 09:37:26

标签: android kotlin mockito

我想使用Mockito进行单元测试,所以我将Mockito库添加到我的gradle依赖项中。

testImplementation 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.12.0' 

但是,我仍然不能使用任何Mockito注释。

/androidTest/ExampleTest.kt

@RunWith(MockitoJUnitRunner::class) // Unresolved reference MockitoJUnitRunner
@Mock // Unresolved reference Mock

我错过了什么?

4 个答案:

答案 0 :(得分:9)

您应该在build.gradle中使用以下代码:

dependencies {
    // ... more entries
    testCompile 'junit:junit:4.12'

    // required if you want to use Mockito for unit tests
    testImplementation 'org.mockito:mockito-core:2.24.5'
    // required if you want to use Mockito for Android tests
    androidTestImplementation 'org.mockito:mockito-android:2.24.5'
}

然后点击同步

答案 1 :(得分:3)

您可能需要另一个依赖项:

<div class="row">
   <app-grid  [data]="list"  [columns]="columns"></app-grid>
</div>

或者,您可以尝试手动导入注释:

androidTestCompile 'org.mockito:mockito-android:2.12.0'

可能是它没有正确导入,这就是为什么它显示为未解析的参考。自动导入有其缺陷

答案 2 :(得分:0)

我遇到了与assembleDebugAndroidTest有关的objenesis问题。因此,根据Shylendra的回答,您可能需要替换

androidTestImplementation 'org.mockito:mockito-android:2.24.5'

使用

androidTestImplementation("org.mockito:mockito-core:2.8.47")

答案 3 :(得分:0)

在Mockito上非常舒适的库:

    testImplementation 'org.mockito:mockito-inline:2.21.0'
    testImplementation('com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0') {
        exclude group: 'org.jetbrains.kotlin'
        exclude group: 'org.mockito'
    }

    // Also works like a charm with instrumentation tests
    androidTestImplementation 'org.mockito:mockito-android:3.5.13'
    androidTestImplementation('com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0') {
        exclude group: 'org.jetbrains.kotlin'
        exclude group: 'org.mockito'
    }