Android Studio无法识别Espresso / Hamcrest静态方法名称,而无需使用类名称

时间:2015-12-08 10:44:20

标签: android unit-testing android-studio android-testing android-espresso

我不确定提出这个问题的标题是什么,因为我不确定这在技术上是什么。在Android Studio中输入Espresso测试时,我注意到它拒绝接受这样的内容:

onView(withId(R.id.someId)).perform(click());

而只接受这个:

Espresso.onView(ViewMatchers.withId(R.id.someId)).perform(ViewActions.click());

尽管我在网上看到的每个例子都将第一个例子显示为正确的代码。为什么Android Studio强迫我在每个ViewMatcher / Espresso / ViewActions /等前面。即使在我的类中包含导入后,带有classname的方法?

澄清 - 尝试使用第一个示例显示“无法解析方法”并在其上使用自动完成(我必须在它工作之前做几次)总是自动完成第二个示例。在我的项目的所有“常规”代码中,自动完成功能正常,并且可以识别短方法名称。我尝试过“干净”和“无效缓存并重新启动”,但没有改变。

根据缩短的代码显示用法的Google文档示例: https://developer.android.com/training/testing/ui-testing/espresso-testing.html

2 个答案:

答案 0 :(得分:1)

您可以尝试查看Android Studio偏好设置以进行导入。只需转到首选项 - >搜索"导入"

以下是我使用的设置,但我没有这个问题:

imports_1

imports_2

答案 1 :(得分:0)

为我解决了什么问题:只需在一个地方删除红色 withId 。然后重新输入“withId”:之后所有其他红色withId被替换为黑色文本颜色 withId ,现在它已成功编译!