Sto scrivendo un test case JUnit per la mia app per Android. La classe di test estende ActivityInstrumentationTestCase2
e chiama sendKeys()
per emulare l'input dell'utente per i widget TextEdit
. Tuttavia, tutti i codici chiave alfabetici (ad esempio KeyEvent.KEYCODE_G
) inviano solo lettere minuscole allo TextEdit
. Ho provato a inviare KeyEvent.KEYCODE_SHIFT_LEFT
prima di inviare un codice alfabetico, ma non sembra funzionare. Quindi, come faccio a simulare l'utente digitando una lettera maiuscola?Invio di lettere maiuscole a un TextEdit durante i test strumentali
Edit:
posso entrare lettere maiuscole manualmente. Infatti, l'EditText è definito come
<EditText android:id="@id/brand_text"
android:singleLine="true"
android:capitalize="words"
android:hint="@string/brand_hint"
/>
L'attributo android:capitalize="words"
costringe la tastiera virtuale in modalità maiuscolo nell'emulatore. (Suppongo che farà lo stesso su un dispositivo ma non ne ho uno per testarlo.) Poiché l'emulatore fornito con l'SDK non emula la tastiera hardware, non sono stato in grado di testare come funziona la mia UI chiavi dure.
Ho anche provato
EditText brandText = this.activity.findViewById(R.id.brand_text);
brandText.setText(someString);
Tuttavia, il test non è riuscito quando ho fatto questo. Ho preso tutto il codice, quindi non ho i dettagli qui al momento. Proverò a ricrearlo e a modificare questa domanda con quei dettagli.
Hai provato a inviare come sendKeys ("A"); invece di KeyEvent.KEYCODE_A) –
@DurairajP Sì, 'sendKeys (" A ")' è equivalente a 'sendKeys (KeyEvent.KEYCODE_A)'. [Secondo i documenti 'sendKeys (String)'] (http://developer.android.com/reference/android/test/InstrumentationTestCase.html#sendKeys (int ...)): "La sequenza di chiavi è una stringa contenente i nomi delle chiavi come specificato in KeyEvent, senza il prefisso KEYCODE_. " –
@ Code-Guru: nella tua domanda dici di aver provato "KeyEvent.KEYCODE_LEFT_SHIFT" prima del codice alfabetico. Suppongo che sia un errore di battitura come dovrebbe essere 'KeyEvent.KEYCODE_SHIFT_LEFT'. – Squonk