Я пытаюсь написать простое тестовое приложение для запуска в JUnit. У меня были проблемы с получением ClickView, чтобы щелкнуть на правильном представлении. Ниже приведен пример кода, который можно использовать в примере приложения SkeletonActivity, поставляемого с SDK.
public class SkeletonInstrumentation extends ActivityInstrumentationTestCase2<Activity>{
private Activity act;
private Button bClear;
private Button bBack;
private EditText eMain;
public SkeletonInstrumentation(){
super("com.example.android.skeletonapp", Activity.class);
}
public void setUp() {
String app = this.getInstrumentation().getTargetContext().getPackageName();
this.setActivityInitialTouchMode(true);
act = this.launchActivity(app, SkeletonActivity.class, Bundle.EMPTY);
bClear = (Button) act.findViewById(R.id.clear);
bBack = (Button) act.findViewById(R.id.back);
eMain = (EditText) act.findViewById(R.id.editor);
}
public void testClick()
{
TouchUtils.clickView(this, bClear);
}
public void testSendKeys()
{
act.runOnUiThread(
new Runnable(){
public void run(){
bClear.clearFocus();
eMain.requestFocus();
}
}
);
this.sendKeys("A B C D E F G ENTER");
}
}
testClick запускается, но нажимает на основное представление EditText, которое имеет фокус, когда действие начинается и заканчивается, вызывая экранную клавиатуру Я хочу, чтобы он нажал кнопку «Очистить» под EditText. Может кто-нибудь сказать мне, что здесь не так?