Android Studio:无法解析符号“Truth”(真相库)

时间:2018-05-21 11:35:24

标签: android testing android-espresso google-truth

在遇到这个要点之后:https://gist.github.com/chemouna/00b10369eb1d5b00401b,我注意到它正在使用Google Truth库:https://google.github.io/truth/。所以我开始按照以下步骤在Android Studio的build.gradle文件中添加库:

buildscript {
  repositories.mavenLocal()
}

dependencies {
  testImplementation "com.google.truth:truth:0.40"
}

但是当我想为我的断言java类添加Truth入口点的静态导入时:

import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage;

我收到了无法解析符号Truth的错误。 我尝试重建我的项目并实现此处所述的解决方案:AndroidTestCompile dependencies not recognized in the imports,主要运行以下gradle任务:

  • ./ gradlew app:dependencies
  • assembleAndroidTest

但问题仍然存在。

对此有何帮助?

我应该在build.gradle文件中实际添加这些行吗? :

 buildscript {
  repositories.mavenLocal()
}

如果我已经拥有这些:

repositories {
   mavenCentral()
   jcenter()
   google()
}

4 个答案:

答案 0 :(得分:3)

  

要使用Java 8扩展,还要包括   com.google.truth.extensions:真java8延伸:0.40

注意

您应致电 androidTestImplementation

androidTestImplementation "com.google.truth:truth::0.40"

阅读Truth - Fluent assertions for Java

答案 1 :(得分:1)

将适当的依赖项添加到您的构建文件中:

testImplementation "com.google.truth:truth:1.0.1"

当且仅当您正在测试Java 8代码(Stream,Optional等)时,才需要Java 8扩展:

testImplementation "com.google.truth.extensions:truth-java8-extension:1.0.1"

答案 2 :(得分:1)

您需要将 mavenCentral 添加到您的存储库中

repositories {
  mavenCentral()
}
dependencies {
  testImplementation "com.google.truth:truth:1.1.2"
}

答案 3 :(得分:0)

不要忘记使用

<块引用>

mavenCentral() 而不是 jcenter()

allprojects {
   repositories {
      google()
      mavenCentral()
   }
}