android - 如何测试 Android ActionBar 子菜单?

标签 android testing menu junit actionbarsherlock

有谁知道如何使用 android 测试框架测试 actionbar 子菜单项?我正在使用 ActionBarSherlock。单击第一个菜单项以获取下拉菜单时我没有问题,如下所示:

    final View deleteView = (View) activity.findViewById(R.id.action_discard_trans);
    activity.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            deleteView.requestFocus();
        }
    });
    TouchUtils.clickView(TransListFragTest.this, deleteView);

但是当我尝试在下拉菜单显示后获取子菜单项时,我得到一个空 View 。

final View deleteMultiple = (View) activity.findViewById(R.id.am_delete_occurrences);
assertNotNull(deleteMultiple);

这是我的菜单xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:com.paycheckplan="http://schemas.android.com/apk/res-auto" >

<item
    android:id="@+id/action_discard_trans"
    android:icon="@drawable/content_discard"
    android:showAsAction="always"
    android:title="@string/discard_trans">
    <menu>
        <item
            android:id="@+id/am_delete_one"
            android:title="@string/action_mode_delete_one"/>
        <item
            android:id="@+id/am_delete_occurrences"
            android:title="@string/action_mode_delete_occurrences"/>
    </menu>
</item>

最佳答案

我发现使用 solo.getView(R.id.am_delete_occurrences)activity.findViewById(R.id.am_delete_occurrences) 可靠得多。单独版本有效而​​ Activity 引用无效的常见情况是,当您进行配置更改或您试图在 Activity 中的 fragment 中查找 View 时。

关于android - 如何测试 Android ActionBar 子菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18935609/

相关文章:

java - Junit 跳过对函数的调用进入另一个问题

java - 我正在尝试在我的 Android 应用程序中添加一个微调器

Android 进度条的圆半径动态变化

angularjs - 测试失败,因为 AngularJS 没有及时初始化

java - 如何模拟 JodaTime 实际日期?

asp.net - 在 ASP.NET 菜单控件中设置 item.selected

javascript - 模板的动画下拉菜单

python - 菜单要加多少?

Android 每日更新地理围栏

java - 如何从游标中删除唯一值