未模拟Kotlin Gradle DSL JSONObject

时间:2019-03-29 15:24:31

标签: gradle kotlin gradle-kotlin-dsl kotlin-dsl

由于我已将Groovy转换为Kotlin DSL gradle,所以我的单元测试不再起作用。我收到错误消息:

java.lang.RuntimeException: Method get in org.json.JSONObject not mocked. See http://g.co/androidstudio/not-mocked for details.

因此,我遵循了link并将testoptions添加到了我所有的build.gradle.kts文件中。 但是在此之后它仍然不起作用。

我的(builsSrc)build.gradle.kts文件:

plugins {
    `kotlin-dsl`
}

repositories {
    google()
    jcenter()
}

我的(应用程序)build.gradle.kts文件:

plugins {
    id("com.android.library")
    kotlin("android")
    kotlin("android.extensions")
}


android {
    compileSdkVersion(Versions.Android.compileSdkVersion)

    defaultConfig {
        versionCode = Versions.Android.appVersionCode
        versionName = Versions.Android.appVersionName

        minSdkVersion(Versions.Android.minSdkVersion)
        targetSdkVersion(Versions.Android.targetSdkVersion)

        testInstrumentationRunner = Config.Test.instrumentationRunner
    }

    buildTypes {
        getByName("release") {
            isMinifyEnabled = false
            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
        }
    }

    testOptions {
        unitTests.setReturnDefaultValues(true)
    }
}

dependencies {
    implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar"))))

    implementation(Depends.Kotlin.reflect)
    implementation(Depends.Kotlin.kotlinStdLib)

    testImplementation(Depends.TestLibraries.json)
    testImplementation(Depends.TestLibraries.jUnit)
    androidTestImplementation(Depends.TestLibraries.jUnitRunner)
    androidTestImplementation(Depends.TestLibraries.espressoCore)
}

我没有在想什么。 有人知道如何解决此问题吗?

Image Method not mocked

3 个答案:

答案 0 :(得分:0)

我也发现了这一点,但不幸的是它也无法正常工作

testOptions {
    unitTests.apply {
        isReturnDefaultValues = true
    }
}

答案 1 :(得分:0)

我终于设法使用以下方法找到解决方案:

apply(from = "../testOptions.gradle")

其中包含:

android {
    testOptions {
        unitTests.returnDefaultValues = true
    }
}

答案 2 :(得分:0)

以下作品:

  testOptions {
    unitTests.apply {
      isReturnDefaultValues = true
    }
  }

请注意,您需要进行gradle同步以获取配置