我正在为我的 Android 应用程序编写一个 JUnit 测试用例。测试类扩展ActivityInstrumentationTestCase2
并调用以模拟小部件sendKeys()
的用户输入。TextEdit
但是,所有字母键码(例如KeyEvent.KEYCODE_G
)仅将小写字母发送到TextEdit
. 我尝试KeyEvent.KEYCODE_SHIFT_LEFT
在发送字母键码之前发送,但这似乎不起作用。那么如何模拟用户输入大写字母呢?
编辑:
我可以手动输入大写字母。实际上,EditText 被定义为
<EditText android:id="@id/brand_text"
android:singleLine="true"
android:capitalize="words"
android:hint="@string/brand_hint"
/>
该android:capitalize="words"
属性在模拟器中强制屏幕键盘进入大写模式。(我假设它会在设备上做同样的事情,但没有一个可以测试它。)由于 SDK 附带的模拟器不模拟硬件键盘,我无法测试我的 UI 是如何工作的硬键。
我也试过
EditText brandText = this.activity.findViewById(R.id.brand_text);
brandText.setText(someString);
但是,当我这样做时,测试失败了。我删掉了所有的代码,所以我现在没有详细信息。我将尝试重新创建它并使用这些详细信息编辑此问题。