android - clickView如何正确使用?

标签 android testing junit

我正在尝试编写一个简单的测试应用程序以在 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/

相关文章:

java - 编写junit测试来处理继承 hell

android - AlertDialog show() 给出 WindowManager BadTokenException

symfony - 使用 Symfony2 进行功能测试时如何回滚事务

java - 使用 Visual Studio Code 进行 JUnit 测试时的路径问题

ruby-on-rails - 如何使用 Ruby on Rails 在开发中设置邮件?

reactjs - react storybook jest snapshots 导致错误 Cannot find module '../../package' from 'node.js'

java - JUnit:如何通过构造函数创建具有依赖注入(inject)的测试类

java - 从 Android 上的类启动 Activity 时出错

java - Android:如何在 YEAR/MONTH/DATE Spinners 中获取日历

java - RSA AES 解密失败 - InvalidKeyException