我正在尝试编写一个在JUnit中运行的简单测试应用程序。我一直无法通过clickView点击正确的视图。下面是一些示例代码,可以在SDK随附的SkeletonActivity示例应用程序中使用。
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视图,该视图在Activity启动时具有焦点并最终打开屏幕键盘。我想让它点击EditText下面的“清除”按钮。有人能告诉我这里有什么问题吗?
答案 0 :(得分:0)
在AndroidManifest.xml中添加min和max目标SDK对我有用;我从this answer得到了这个想法。在正在测试的项目中(不是测试项目),我将以下行添加到AndroidManifest.xml:
<uses-sdk android:targetSdkVersion="17" android:minSdkVersion="17"/>
我对TouchUtils的所有使用都开始再次表现。
我遇到了同样的问题in this question,虽然我找到了一个解决方法,但它变得非常繁琐,所以我花了更多的时间来深入了解它。
答案 1 :(得分:-1)
这里使用clickView是正确的。问题出在AndroidManifest.xml中。必须设置Min和Target SDK才能使其正常工作。