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