我正在尝试编写一个简单的测试应用程序以在 JUnit 中运行。我一直无法让 clickView 单击正确的 View 。以下是一些示例代码,可用于 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 运行,但在 Activity 启动时单击具有焦点的主 EditText View ,并最终调出屏幕键盘。我希望它单击 EditText 下方的“清除”按钮。谁能告诉我这里出了什么问题?
最佳答案
在 AndroidManifest.xml 中添加最小和最大目标 SDK 对我有用;我的想法来自 this answer .在正在测试的项目(不是测试项目)中,我在 AndroidManifest.xml 中添加了以下行:
<uses-sdk android:targetSdkVersion="17" android:minSdkVersion="17"/>
我对 TouchUtils 的所有使用再次开始表现一致。
我有同样的问题in this question虽然我能够找到解决方法,但它变得非常麻烦,所以我花了更多时间来查明它。
关于android - clickView如何正确使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4434460/