未解决的参考:mockwebserver

Unresolved Reference: mockwebserver

我正在用 mockwebserver 编写测试套件。我从官方 github 页面输入了所有依赖项。每次我尝试 运行 我收到的测试 Unresolved reference: mockwebserver

没有导入选项。进口的字体不是红色的。 Android Studio 不提示任何内容。除了与未解决的参考相关的错误外,没有其他错误。

截图:


build.gradle

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id("org.jetbrains.kotlin.android.extensions")
}

android {
    compileSdk 31

    useLibrary("android.test.runner")
    useLibrary("android.test.base")
    useLibrary("android.test.mock")

    defaultConfig {
        applicationId "com.example.moviespotter"
        minSdk 21
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables {
            useSupportLibrary true
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    buildFeatures {
        viewBinding = true
        compose true
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    composeOptions {
        kotlinCompilerExtensionVersion compose_version
        kotlinCompilerVersion '1.5.21'
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
        kotlinOptions {
            jvmTarget = '1.8'
        }
    }
    packagingOptions {
        resources {
            excludes += '/META-INF/{AL2.0,LGPL2.1}'
        }
    }
}

dependencies {

    implementation 'androidx.core:core-ktx:1.6.0'
    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    implementation "androidx.compose.ui:ui:$compose_version"
    implementation "androidx.compose.material:material:$compose_version"
    implementation "androidx.compose.ui:ui-tooling-preview:$compose_version"
    implementation 'androidx.activity:activity-compose:1.3.1'
    implementation 'androidx.test.espresso:espresso-idling-resource:3.1.1'
    testImplementation 'junit:junit:4.13'
    testImplementation 'com.squareup.okhttp3:mockwebserver3:5.0.0-alpha.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
    androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version"
    androidTestImplementation 'androidx.test:rules:1.4.0'
    androidTestImplementation 'androidx.test:runner:1.4.0'
    debugImplementation "androidx.compose.ui:ui-tooling:$compose_version"
    implementation 'com.squareup.retrofit2:retrofit:2.7.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.7.0'
    implementation 'com.squareup.okhttp3:okhttp:4.3.1'
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation 'com.github.bumptech.glide:glide:4.10.0' //Glide
    implementation "androidx.fragment:fragment-ktx:$fragment_version"
    implementation "androidx.fragment:fragment-ktx:$fragment_version"
    implementation "io.coil-kt:coil-compose:1.3.1"
    annotationProcessor 'com.github.bumptech.glide:compiler:4.10.0'
    androidTestImplementation 'com.jakewharton.espresso:okhttp3-idling-resource:1.0.0'
}

我找到了罪魁祸首。

将依赖项添加到 build.gradle 文件时,它应该显示为 implementation

更改自: testImplementation 'com.squareup.okhttp3:mockwebserver3:5.0.0-alpha.2'

收件人: implementation 'com.squareup.okhttp3:mockwebserver3:5.0.0-alpha.2'

既然是在androidTest中,应该是

androidTestImplementation 'com.squareup.okhttp3:mockwebserver3:5.0.0-alpha.2'

混合使用 5.0.0-alpha.2 和 4.3.1 也是一个痛苦的世界。