对于Android App,我尝试根据https://developer.android.com/reference/android/support/annotation/VisibleForTesting使用@VisibleForTesting()
@VisibleForTesting()
void myFunction(String id) {
doSomething(id);
}
对Java和Kotlin代码都进行了尝试。
我明确地让生产调用用@VisibleForTesting()
注释的public函数。编译时,看不到任何错误或警告会阻止我在生产代码中使用它。
我有什么想念吗?
答案 0 :(得分:0)
阅读文档:
您可以选择指定可见性,如果不进行测试,应该是什么?这样,工具就可以从生产代码中捕获意外访问。
示例:
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
void myFunction(String id) {
doSomething(id);
}
因此,在您的情况下,您缺少注释中的可选otherwise
参数。没有该属性,您将无法执行任何断言以防止生产代码未经授权地调用该方法,因为检查者无法知道应阻止哪种调用。
答案 1 :(得分:0)
这将由Android的Lint声明,默认为警告。
您可以通过将严重性级别提高为build.gradle
中的错误来更改它:
android {
lintOptions {
error("VisibleForTests")
}
}