android – getSupportActionBar()使用Robolectric返回null

android – getSupportActionBar()使用Robolectric返回null,第1张

概述当我通过Roboelectric和JUnit中的测试用例调用它时,方法getSupportActionBar()返回null. 这是我的简单测试用例: package com.mobile.test;import static org.hamcrest.CoreMatchers.equalTo;import static org.junit.Assert.assertEquals;impo 当我通过Roboelectric和JUnit中的测试用例调用它时,方法getSupportActionbar()返回null.

这是我的简单测试用例:

package com.mobile.test;import static org.hamcrest.CoreMatchers.equalTo;import static org.junit.Assert.assertEquals;import static org.junit.Assert.assertthat;import org.junit.Test;import org.junit.runner.RunWith;import org.robolectric.Robolectric;import org.robolectric.RobolectricTestRunner;import androID.app.Activity;import androID.content.Intent;import com.mobile.androID.core.R;import com.mobile.androID.core.activity.MainActivity;import com.mobile.androID.core.activity.TestActivity;@RunWith(RobolectricTestRunner.class)public class NavigationDrawerTest {private Activity activity;@Testpublic voID testNavigationDrawer() {    activity = Robolectric.buildActivity(MainActivity.class).create().get();    String hello = activity.getResources().getString(R.string.drawer_open);    System.out.println(hello);    assertEquals(hello,"Menu");}}

这是我的Activity类:

public class MainActivity extends ActionBaractivity {// Drawer relatedprivate DrawerLayout mDrawerLayout;private ListVIEw mDrawerList;private ActionbarDrawerToggle mDrawerToggle;String[] mDrawerOptions;@OverrIDepublic voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);    // enable Actionbar app icon to behave as action to toggle nav-drawer    if (getSupportActionbar() != null) {        getSupportActionbar().setdisplayHomeAsUpEnabled(true);        getSupportActionbar().setHomebuttonEnabled(true);    }}}

关于hwo的任何好主意都要解决这个问题?
我是否必须写一些影子活动,或者是否有人知道如何使用RObolectric解决这些 *** 作栏问题?

谢谢你的帮助

解决方法 支持Actionbar
通过使用Gingerbread sdk内部版本号为我的测试添加@Config注释,我能够获得支持Actionbar的实例:
@Test @Config(reportSdk = 10)public voID actionbartest(){.... Your Test here}

这里可以看到一个简单的项目设置:simple-robolectric

ActionbarSherlock
您必须将修改后的ActionbarSherlock文件添加到测试包中,并在@Before方法中调用以下方法:

ActionbarSherlock.registerImplementation(ActionbarSherlockRobolectric.class);ActionbarSherlock.unregisterImplementation(ActionbarSherlockNative.class);ActionbarSherlock.unregisterImplementation(ActionbarSherlockCompat.class);

完整的说明可在此处找到:ActionBar and Robolectric working together

更新使用Robolectric 2.2,您只需将配置注释“@Config(reportSdk = 10)”添加到您的测试方法或类中,它也应该可以正常工作.

总结

以上是内存溢出为你收集整理的android – getSupportActionBar()使用Robolectric返回null全部内容,希望文章能够帮你解决android – getSupportActionBar()使用Robolectric返回null所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1135466.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存