我正在尝试使用 Rolocklectric 为使用 SherlockActionBar 的应用程序编写测试。
如果选择了MenuItem
,我需要测试应用程序是否正确,但是当应用程序使用方法android.view.MenuItem
时,Robolectric lib仅为onOptionItemSelected(com.actiombarsherlock.view.MenuItem)
提供模拟。
所以我的问题是:
可能存在可模仿com.actionbarsherlock.view.MenuItem
的可用性?
或解决方法或什么?
提前致谢...
答案 0 :(得分:5)
所以...因为没有更优雅的方式来嘲笑com.actionbarsherlock.view.MenuItem
我这样做了:
com.actionbarsherlock.view.MenuItem
MenuItem
界面中的其他方法留空(可能我会在其他测试中使用它们)结果我得到了这样的测试:
com.actionbarsherlock.view.MenuItem item = new TestSherlockMenuItem(R.id.some_action);
activity.onOptionsItemSelected(item);
ShadowActivity shadowActivity = Robolectric.shadowOf(activity);
Intent startedIntent = shadowActivity.getNextStartedActivity();
assertNotNull(startedIntent);
ShadowIntent shadowIntent = Robolectric.shadowOf(startedIntent);
assertThat(shadowIntent.getComponent().getClassName(),
equalTo(NextActivity.class.getName()));
顺便说一句,感谢 Eugen Martynov 试图了解我的问题:)