android测试 - 即使EditText有字符

时间:2015-05-14 04:04:00

标签: 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");
在断言之前,虽然我认为可能有更好或更正确的方式。

1 个答案:

答案 0 :(得分:1)

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

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