Android – AssertionFailedError en el método startActivity en la clase de prueba de ActivityUnitTestCase

Estoy tratando de probar una actividad en un módulo. Estoy tratando de iniciar esta actividad en el método de prueba, pero siempre tengo un AssertionFailedError . Busqué este problema en la web pero no pude encontrar ninguna solución. Cualquier ayuda es apreciada.

Esta es mi clase de prueba:

 public class ContactActivityTest extends ActivityUnitTestCase<ContactActivity> { public ContactActivityTest() { super(ContactActivity.class); } @Override public void setUp() throws Exception { super.setUp(); } public void testWebViewHasNotSetBuiltInZoomControls() throws Exception { Intent intent = new Intent(getInstrumentation().getTargetContext(), ContactActivity.class); startActivity(intent, null, null); } @Override public void tearDown() throws Exception { super.tearDown(); } } 

Y este es el error:

 junit.framework.AssertionFailedError at android.test.ActivityUnitTestCase.startActivity(ActivityUnitTestCase.java:147) at com.modilisim.android.contact.ContactActivityTest.testWebViewHasNotSetBuiltInZoomControls(ContactActivityTest.java:29) at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214) at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1763) 

Saludos.

El método startActivity () de ActivityUnitTestCase sólo debe ser llamado en el subproceso principal.

Esto se puede hacer de las siguientes maneras:

  1. Utilice la anotación @UiThreadTest antes de su método de prueba:

     @UiThreadTest public void testWebViewHasNotSetBuiltInZoomControls() throws Exception { Intent intent = new Intent(getInstrumentation().getTargetContext(), ContactActivity.class); startActivity(intent, null, null); } 
  2. Utilice el método runOnMainSync de la clase Instrumentation:

     public void testWebViewHasNotSetBuiltInZoomControls() throws Exception { final Intent intent = new Intent(getInstrumentation().getTargetContext(), ContactActivity.class); getInstrumentation().runOnMainSync(new Runnable() { @Override public void run() { startActivity(intent, null, null); } }); } 

¿Por qué estoy bien?

  • Obtener resultado de una actividad después de terminar (); En una prueba de unidad de Android
  • ¿Cómo probar la clase usando resolver contenido / proveedor?
  • JUnit prueba para la aplicación de Android con fragmentos
  • ¿Es posible inyectar simulacros para realizar pruebas con AndroidAnnotations?
  • ¿Cómo ejecutar una prueba JUnit4 simple en Android Studio 1.1?
  • ¿Puedo probar las notificaciones de la barra de estado utilizando el marco de pruebas de Android?
  • Cómo probar interfaz de escucha se llama dentro de pruebas de unidad de Android
  • Ejecute una sola prueba de Android (unidad) desde gradle sin cargar otras dependencias de proyecto
  • Akquinet (Android con el arquetipo de prueba) - las pruebas de unidad no se ejecutan
  • La prueba de Android JUnit de Simpe se cuelga en Eclipse
  • Prueba JUnit con Robolectric: java.lang.InstantiationException
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.