Android uygulamam için bir JUnit test durumu yazıyorum. Test sınıfı ActivityInstrumentationTestCase2
'u uzatır vewidget'ları için kullanıcı girdisini taklit etmek için sendKeys()
'u çağırır. Ancak, tüm alfabetik anahtar kodları (ör. KeyEvent.KEYCODE_G
) sadece küçük harfleri TextEdit
'a gönderir. Alfabetik anahtar kod göndermeden önce KeyEvent.KEYCODE_SHIFT_LEFT
göndermeyi denedim, ancak bu işe yaramadı. Peki, kullanıcı bir büyük harf yazarak nasıl simüle edebilirim?Enstrümantasyonlu testler sırasında bir TextEdit'e büyük harfler gönderme
Düzenleme:
elle harf harf girebilirsiniz. android:capitalize="words"
nitelik emülatörü içinde büyük moduna ekran klavyesini zorlar
<EditText android:id="@id/brand_text"
android:singleLine="true"
android:capitalize="words"
android:hint="@string/brand_hint"
/>
olarak Aslında, EditText tanımlanır. (Bir aygıtta aynı şeyi gerçekleştireceğini varsayalım, ancak bunu test edebilecek biri yok.) SDK ile birlikte gelen emülatör donanım klavyesine benzemediğinden, UI'mın nasıl çalıştığını test edemedim. sabit tuşlar.
Ben de bunu yaparken
EditText brandText = this.activity.findViewById(R.id.brand_text);
brandText.setText(someString);
Ancak testi başarısız çalıştı. Tüm bu kodu koydum, bu yüzden şu an burada detaylarım yok. Yeniden oluşturmayı ve bu soruyu bu detaylarla düzenlemeyi deneyeceğim. Eğer böyle bir şey yapmak istiyorsanız
SendKeys ("A") gibi göndermeyi denediniz; yerine KeyEvent.KEYCODE_A) –
@DurairajP Evet, 'sendKeys (" A ")', 'sendKeys (KeyEvent.KEYCODE_A)' ile eşdeğerdir. [Docs 'sendKeys (String)'] 'e göre (http://developer.android.com/reference/android/test/InstrumentationTestCase.html#sendKeys (int ...)): "Anahtar dizisi bir dizgidir KEYCODE_ öneki olmadan KeyEvent'te belirtilen anahtar adlarını içerir. " –
@ Code-Guru: Sorunuzda, alfabetik koddan önce 'KeyEvent.KEYCODE_LEFT_SHIFT' denediğinizi söylüyorsunuz. Ben 'KeyEvent.KEYCODE_SHIFT_LEFT' olması gerektiği gibi bir yazım hatası varsayalım. – Squonk