ActivityUnitTestCase getActionBar () devuelve null

Mi FragmentActivity llama a getActionBar() en onCreate() :

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new_expense); getActionBar().setDisplayHomeAsUpEnabled(true); } 

Esto funciona bien al ejecutar la aplicación normalmente en el emulador o en un dispositivo. Sin embargo, cuando getActionBar() la actividad con un ActivityUnitTestCase , getActionBar() devuelve siempre null.

 public class NewTransactionTest extends ActivityUnitTestCase<TransactionEditActivity> { private RenamingDelegatingContext myContext; private DatabaseHelper myHelper; private RuntimeExceptionDao<Account,Long> myDao; private Account myBankAccount1; private Account myBankAccount2; private Account myCategory1; private Account myCategory2; private Budget myBudget; public NewTransactionTest() { super(TransactionEditActivity.class); } @Override protected void setUp() throws Exception { super.setUp(); myContext = new RenamingDelegatingContext(getInstrumentation().getTargetContext(), "test"); myContext.deleteDatabase(DatabaseHelper.DATABASE_NAME); } @UiThreadTest public void testPreConditions() throws Throwable { setActivityContext(myContext); final TransactionEditActivity activity = startActivity(new Intent(), null, null); } 

¿Alguien sabe por qué getActionBar() devuelve nulo para las pruebas de unidad?

Es parte del diseño. ¿Ha intentado utilizar ActivityInstrumentationTestCase2 en su lugar? No hay garantía de que funcione, pero hay una mejor oportunidad. El Contexto que está disponible en ActivityInstrumentationTestCase2 admite más funciones.

Real unidad de pruebas en Android es difícil de hacer. Especialmente para las actividades, usted debe permitirse a "trampa" y hacer pruebas funcionales en su lugar.

  • ¿Cómo puedo transferir un dispositivo de prueba de base de datos al dispositivo desde mi aplicación de prueba de unidad
  • La invocación de Apache DefaultHttpClient resulta en "java.lang.RuntimeException: Stub!"
  • ¿Cómo los métodos de prueba de unidad publicados por Event Bus en android?
  • Pruebas de unidades de Android que requieren contexto
  • Prueba de unidad Actividad.startService () llamada?
  • Problemas al configurar el entorno de prueba de App Engine
  • ActivityInstrumentationTestCase2 vs ActivityTestRule
  • Prueba de unidad de actividad
  • Prueba de unidad de Android con Retrofit y Mockito
  • Android Gradle Conflicto de dependencia con la versión interna proporcionada por Android
  • Sala de pruebas de unidad y LiveData
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.