如何使用 Espresso 在 UI 测试中模拟 textwatcher?

How to emulate textwatcher on UI tests with Espresso?

当某个 EditTextView 达到 6 个字符时,我正在使用 TextWatcher 触发请求。我如何在 Espresso UI 测试中模拟它?我只找到了 .perform(click()) 之类的示例,但是没有按钮可以触发操作。有没有什么字符数达到n的时候?

除了做 .perform(click()) 你还应该调用 .perform(typetext()) 来检查输入的字符改变时会发生什么:

onView(withId(R.id.yourInputId)).perform(click(), typeText("123456"));

然后评估在达到该字符数后 UI 中应该发生的任何事情。

P.S.: typeText() 之前的 click() 只在某些旧版本的 espresso 中需要。我用它以防万一。有时需要更多方法,例如:perform(scrollTo(), click(), clearText(), typeText("123456")) 以防需要滚动并且在设置新文本之前应清除文本。