[英]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.