gpt4 book ai didi

android - Robolectric - 如何模拟 com.actionbarsherlock.view.MenuItem?

转载 作者:太空宇宙 更新时间:2023-11-03 13:00:00 25 4
gpt4 key购买 nike

我正在尝试使用 Robolectric 为使用 SherlockActionBar 的应用程序编写测试。如果选择了 MenuItem,我需要测试应用程序是否正确执行操作,但 Robolectric 库仅提供 android.view.MenuItem 的模拟,而应用程序使用该方法onOptionItemSelected(com.actiombarsherlock.view.MenuItem)

所以我的问题是:

  • 是否可以模拟 com.actionbarsherlock.view.MenuItem

  • 或者解决方法之类的?

提前致谢...

最佳答案

所以...因为没有更优雅的方法来模拟 com.actionbarsherlock.view.MenuItem 我这样做了:

  • 创建了我自己的实现 com.actionbarsherlock.view.MenuItem
  • 的类
  • 在我的模拟类中为 itemId 添加了一个 int 字段。
  • MenuItem 接口(interface)中的其他方法留空(可能我会在其他测试中使用它们)

结果我得到了这样的测试:

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 试图理解我的问题:)

关于android - Robolectric - 如何模拟 com.actionbarsherlock.view.MenuItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13084790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com