java - android测试-EditText即使有字符也返回空

标签 java android testing junit automated-tests

我正在尝试对 EditText 执行功能测试,首先使用以下代码段获得对字段的关注,从而向其发送文本:

instrumentation.runOnMainSync(new Runnable() {
    @Override
    public void run() {
         editText.requestFocus();
    }
}

然后通过以下方式发送字符串:

instrumentation.waitForIdleSync();
instrumentation.sendStringSync("Some Text");
instrumentation.waitForIdleSync();

如果我运行测试并观察它,文本确实被输入到 EditText 中,但是当我尝试将它用于断言时,EditText 返回一个空文本:

assertFalse(editText.getText().toString().isEmpty());

我试过记录文本,但它确实返回一个空字符串,就好像 EditText 中没有文本一样。我也曾尝试在单独的 Runnable 上运行断言或在一定延迟后无济于事。

临时解决方案: 至于同时,我正在通过手动添加测试

editText.setText("Some Text");

在断言之前,尽管我认为可能有更好或更正确的方法。

最佳答案

我发现的另一种解决方法是使用 Android Espresso。通过检测将字符串发送到 EditText 后,我​​可以通过以下方式断言其有效性:

 onView(withText("Some Text")).check(matches(isDisplayed()));

关于java - android测试-EditText即使有字符也返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30229034/

相关文章:

java - 构建-impl.xml :1045: Deployment error: Starting of Tomcat failed

java - 有没有办法确保将线程分配给指定的一组对象?

unit-testing - Erlang 通用测试 : Get test runtime stats across all test suites

安卓工作室 : testing is slow

java - 如何在java主程序中打印注解接口(interface)的默认值

java - JTextField 未出现

android - 如何解决 setBackgroundDrawable 被弃用的问题

android - 将 'wrap_content' 或 '-2' 分配给维度

android - 错误 :(41, 0) 提供的字符串模块符号 '0.12.2' 无效

java - 在 Maven 项目中将 stub 类放在哪里