如何在Android Studio中使用android.test.mock

Yks*_*nen 2 android unit-testing

我正在尝试在Android Studio中的Android项目的单元测试中使用MockContext。问题是,包android.test.*在项目中不可见。

我不确定应该将什么添加到Gradle以便导入它。我试着com.android.support.test:rules:1.0.2androidx.test:rules:1.1.1(由IDE提出的建议之一),但是这不是我要找的人。

build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.myApp"
        minSdkVersion 23
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    //noinspection GradleCompatible
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-core:16.0.8'
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    testImplementation 'com.android.support.test:rules:1.0.2'
}

apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

编译时出现错误信息:

错误:程序包android.test.mock不存在

我应该添加什么到gradle才能访问android.test软件包?

小智 6

实际上,您可以android.test.mock从单元测试中访问并获得对该MockContext类的访问权限。对于AndroidX项目,您可以在应用模块的中添加以下内容build.gradle

android {
    ...
    useLibrary 'android.test.mock'
}
Run Code Online (Sandbox Code Playgroud)

资料来源:https : //developer.android.com/training/testing/set-up-project