由于我已将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)
}
我没有在想什么。 有人知道如何解决此问题吗?
答案 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同步以获取配置