GetSupportActionBar () возвращает null с помощью Robolectric

Метод getSupportActionBar () возвращает null, когда я вызываю его через тестовый пример, основанный на Roboelectric и JUnit.

Это мой простой тестовый пример:

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; @Test public 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"); } } 

И это мой класс активности:

 public class MainActivity extends ActionBarActivity { // Drawer related private DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; String[] mDrawerOptions; @Override public 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
Мне удалось вернуть экземпляр поддержки ActionBar, добавив аннотацию @Config к моему тесту с номером сборки gingerbread sdk:

 @Test @Config(reportSdk = 10) public void actionbarTest(){ .... Your Test here } 

Простую настройку проекта можно увидеть здесь: простой-робоэлектрический

ActionBarSherlock
Вы должны добавить модифицированные файлы ActionBarSherlock в свой тестовый пакет и вызвать следующие методы в методе @Before:

 ActionBarSherlock.registerImplementation(ActionBarSherlockRobolectric.class); ActionBarSherlock.unregisterImplementation(ActionBarSherlockNative.class); ActionBarSherlock.unregisterImplementation(ActionBarSherlockCompat.class); 

Полный набор инструкций можно найти здесь: ActionBar и Robolectric работают вместе

Обновить
С Robolectric 2.2 вам нужно только добавить аннотацию конфигурации «@Config (reportSdk = 10)» к вашим методам тестирования или классу, и она также должна работать.