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:
- Prueba de RxJava2 usando Espresso y obtener una excepción de puntero nulo cuando suscribeOn
- Robolectric's Shadow Object y Mocking
- La compatibilidad con la prueba de unidades Android no funciona en los módulos de la biblioteca de Android
- VerifyError con PowerMock en Android
- Java.lang.IllegalAccessError: Clase ref en clase pre-verificada resuelto a la implementación inesperada obteniendo mientras ejecuta proyecto 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.
- Android instrumentación prueba java.lang.UnsatisfiedLinkError en el uso de AndroidJunitRunner y AndroidJUnit4
- ¿Cómo hacer simples pruebas junit de vainilla en android? Cómo obtener un error al hacer
- JUnit en android
- ¿Cómo puedo ejecutar una única prueba de Android con Kotlin?
- Las pruebas consecutivas de Junit de Android no reflejan los datos reales de la base de datos subyacente
- Unidad probar un fragmento de Android
- Fragmento getActivity () devuelve null en la actividad JUnit test
- Prueba JUnit con Robolectric: java.lang.InstantiationException
El método startActivity () de ActivityUnitTestCase sólo debe ser llamado en el subproceso principal.
Esto se puede hacer de las siguientes maneras:
-
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); }
-
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?
- Generación de diagrama UML en Android Studio
- Formato de fecha y hora según la configuración regional