未解决的参考:Matchers

时间:2018-10-06 08:22:28

标签: android junit kotlin hamcrest

当我导入org.hamcrest.Matchers时,我无法运行单元测试,因为我需要lessThan()。使用greaterThan匹配器时,我的仪器测试可以正确编译,但是单元测试不能编译

代码:

import org.hamcrest.CoreMatchers.*
import org.hamcrest.Matchers.lessThan
import org.junit.Assert.assertThat
import org.junit.Test
import java.util.*

成绩记录:https://pastebin.com/ibgzzrg1

删除第二行使项目编译并运行测试。

2 个答案:

答案 0 :(得分:2)

我有同样的问题。我发现我只是通过 instrumented 测试遇到了这个问题。非仪器测试可以导入并运行良好。

此问题的解决方法是将androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'添加到我的依赖项中。

由于我的测试都没有明确使用Espresso,因此我删除了这种想法是没有必要的。事实证明是出于我无法理解的原因。

答案 1 :(得分:0)

对于我来说,在运行Task:compileTestKotlin时收到编译器错误“ Unresolved reference:Matchers”。原来,我已将hamcrest依赖项声明为 testRuntimeOnly 。将其更改为 testImplementation 可以解决此问题。

testImplementation("org.hamcrest:hamcrest:2.2")

检查文档here很有趣。