studio start stackoverflow open new intent from create activity actividades android unit-testing assertion start-activity activityunittestcase

stackoverflow - start a activity android



Android-AssertionFailedError en el método startActivity en la clase de prueba ActivityUnitTestCase (1)

El método startActivity () de ActivityUnitTestCase debe llamarse solo en el hilo principal.

Esto se puede hacer de las siguientes maneras:

  1. Use 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. Use el método runOnMainSync de la clase de Instrumentación:

    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é tengo razón?

Estoy tratando de probar una actividad en un módulo. Solo intento iniciar esta actividad en el método de prueba, pero siempre tengo un AssertionFailedError . Busqué en la web este problema 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.