繁体   English   中英

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

[英]android testing - EditText returning empty even when it has characters

我正在尝试对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()));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM