Android Studio-未解决的参考:真相

her*_*hke 0 google-truth

我正在尝试将Google Truth框架包含在我的项目中进行测试。我遵循了有关如何进行项目设置的文档。

这来自我的应用程序的build.gradle文件:

dependencies {
    ...
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.2-alpha01'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.2-alpha01'
    androidTestImplementation 'androidx.test.ext:truth:1.1.0'
    androidTestImplementation 'com.google.truth:truth:0.43'
}
Run Code Online (Sandbox Code Playgroud)

同步过程成功完成。

然后,我尝试运行本地单元测试,例如:

import org.junit.Test
import com.google.common.truth.Truth.*

class CustomExampleUnitTest {

    @Test
    fun testBlank_isCorrect() {
        assertThat("".isBlank()).isTrue()
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到Kotlin编译器错误:无法解析的参考:真相

有几件事要注意:

  • 当我尝试通过开始输入与真相相关的方法时,对于任何这些方法都没有建议。这不需要手动添加import语句,但是当我从建议的方法中选择适当的方法时,Android Studio始终会自动执行此操作,因此这是我注意到的第一件事。
  • 当上述方法无效时,我手动进行了导入,并在输入要导入的内容时,确实得到了com.google.common.truth.Truth的建议...这表明至少JAR文件在某处被发现。手动导入后,Android Studio开始像我以前期望的那样从Truth建议方法。

因此,在完成上述步骤之后,我尝试运行测试,但仍然遇到未解决的问题。

任何人都可以尝试阐明这一点吗?有没有人遇到这个。我真的很感谢任何帮助!

col*_*dle 6

如果您的测试在androidTest目录中,则需要

androidTestImplementation 'com.google.truth:truth:0.43'
Run Code Online (Sandbox Code Playgroud)

但是,如果您的测试在test目录中,则需要

testImplementation 'com.google.truth:truth:0.43'
Run Code Online (Sandbox Code Playgroud)