近测试框架收到反馈,详查后发现了一个Robotium的问题,甚有趣,遂记录。
  问题场景
  Robotium.enterText输入数据后,点击"发送"按钮,多数情况下失败,少数时候成功。

  问题分析:
  这个问题不需要深入的分析流程,直接看enterText源码便可发现大概问题:
public void setEditText(final EditText editText, final String text) {
if(editText != null){
final String previousText = editText.getText().toString();
inst.runOnMainSync(new Runnable()
{
public void run()
{
editText.setInputType(InputType.TYPE_NULL); // 设置input类型,不重要
editText.performClick();
dialogUtils.hideSoftKeyboard(editText, false, false);
if(text.equals(""))
editText.setText(text);
else{
editText.setText(previousText + text);
editText.setCursorVisible(false); // …为什么text.equals("")不需要呢setCursorVisible(false)呢?这TM在玩我吧......算了这个也不重要...
}
}
});
}
}