这是我的简单测试用例:
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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)