clickView是如何正确使用的?

时间:2010-12-13 23:20:35

标签: android testing junit

我正在尝试编写一个在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下面的“清除”按钮。有人能告诉我这里有什么问题吗?

2 个答案:

答案 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才能使其正常工作。