【问题标题】:@VisibleForTesting() function not triggering compile error for production code when being used@VisibleForTesting() 函数在使用时不会触发生产代码的编译错误
【发布时间】:2018-12-17 01:52:08
【问题描述】:

对于Android App,我尝试按照https://developer.android.com/reference/android/support/annotation/VisibleForTesting使用@VisibleForTesting()

@VisibleForTesting()
void myFunction(String id) {
    doSomething(id);
}

对 Java 和 Kotlin 代码都进行了尝试。

我明确地让生产调用带有@VisibleForTesting() 注释的公共函数。编译时,我看不到任何错误或警告,以阻止我在生产代码中使用它。

我错过了什么吗?

【问题讨论】:

  • 是什么让你认为它应该在编译期间抛出错误或警告?
  • 仅仅因为它对测试可见,并不意味着它不应该在非测试代码中使用。反之亦然。仅从测试中调用的代码没有任何价值 - 只需将其删除即可。在好的代码中,总是有一些访问@VisibleForTesting 方法的非测试代码。

标签: java android unit-testing kotlin


【解决方案1】:

这将由 Android 的 Lint 断言,并默认为警告。

您可以通过将build.gradle 中的严重级别提高为错误来更改:

android {
    lintOptions {
        error("VisibleForTests")
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多