片段中使用的浓咖啡测试

时间:2015-10-12 15:06:46

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

我之前从未使用过浓缩咖啡。现在我想在editText字段片段中自动键入一些文本。我只知道如何使用Activity。

@LargeTest
public class EspressoTest {


    @Rule
    public ActivityTestRule<CheckInActivity> mActivityRule =
            new ActivityTestRule<>(CheckInActivity.class);
    @Test
    public void testActivityShouldHaveText() throws InterruptedException {
        onView(withId(R.id.editText)).perform(clearText(), typeText("KI"));
    }
}

我有MainActivity托管的MainFragment,editText放在MainFragment布局中。

也有一种方法在浓缩咖啡中点击一些文字,所以它可以通过文字找到视图吗?

3 个答案:

答案 0 :(得分:2)

  

也有一种方法在浓缩咖啡中点击一些文字,所以它可以通过文字找到视图吗?

要按照文本捕获视图,您可以执行此示例:

onView(withString(R.string.editText)).check(matches(isDisplayed()));

要捕捉一个文本或只是它的一部分,你可以使用(我认为它也可能在Robotium中)Hamcrest匹配器。在这里你可以找到所有匹配器:Hamcrest 1.3 Quick Reference

为了更清楚,我会给你一些例子:

onView(withId(R.id.textView)).check(matches(withText(startsWith("Hello"))));

onView(withId(R.id.action_bar_main)).check(matches(withText(String.valueOf(contains("Hello")))));

onView(withId(R.id.textView)).check(matches(withText(endsWith("Hello"))));

我认为这也很有用:

How do I detect a view that I have created programmatically in espresso

答案 1 :(得分:1)

现在我决定使用机器人,因为我还不知道如何使用浓缩咖啡来实现它 Robotium有waitForFragment和waitForActivity等方法

答案 2 :(得分:1)

如果您想按文字查找视图,可以使用onView(withText())

但是,您可能需要链接几个匹配器才能找到您想要的内容。 allOf()让你做到这一点。您可能还需要先点击文本字段才能输入。

onView(allOf(
    withId(R.id.editText),
    withText(R.string.edit_text)
)).perform(click(),
           clearText(),
           typeText("KI")
   );

我更喜欢在大多数测试中使用replaceText()来节省时间。