小编Bap*_*ier的帖子

用于 Kotlin 单元测试的 BuildConfigField 模拟

我正在尝试尽可能多地介绍Kotlin Android 库,但遇到了一个关于自定义 BuildConfig 变量的问题,更广为人知的是buildConfigField.

我想模拟这个变量来测试truefalse值。

从 Gradle 文件中提取:

android {
    defaultConfig {
        buildConfigField "boolean", "ENABLE_LOG", "false"
    }
    flavorDimensions "log"
    productFlavors {
        loggable {
            buildConfigField "boolean", "ENABLE_LOG", "true"
            dimension "log"
        }
        notloggable {
            dimension "log"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

要测试的 Kotlin 函数的摘录:

fun buildClient(): MyClient {
    var myClientBuilder : MyClient.Builder = MyClient.Builder();

    if (BuildConfig.ENABLE_LOG) {
        val interceptor = LoggingInterceptor();
        interceptor.setLevel(LoggingInterceptor.Level.ALL);
        myClientBuilder.addInterceptor(interceptor);
    }

    return myClientBuilder.build()
}
Run Code Online (Sandbox Code Playgroud)

单元测试 :

@Test
fun buildClient_enableLog_oneInterceptor() {
    // GIVEN …
Run Code Online (Sandbox Code Playgroud)

android unit-testing buildconfiguration kotlin

9
推荐指数
2
解决办法
3350
查看次数