Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Reglas de JUnit4 con AndroidX Test

AndroidX Test incluye un conjunto de reglas de JUnit para usar con AndroidJUnitRunner. Esas reglas proporcionan más flexibilidad y reducen el código estándar requerido en las pruebas.

ActivityTestRule

Esta regla proporciona pruebas funcionales de una sola actividad. La actividad en prueba se inicia antes de cada prueba anotada con @Test y antes de cualquier método anotado con @Before. Finaliza una vez que se completan la prueba y todos los métodos anotados con @After. Para acceder a la actividad que se está probando en tu lógica de prueba, llama a ActivityTestRule.getActivity().

Nota:  TestAndroidX incluye otra API, ActivityScenario, que actualmente se encuentra en fase Beta. Esta API funciona en un varios entornos de prueba y proporciona seguridad de subprocesos dentro de las pruebas que la usan.

Te recomendamos que pruebes la API para ver cómo puede ayudarte a impulsar los ciclos de vida de las actividades de tu app.

En el siguiente fragmento de código, se muestra cómo incorporar ActivityTestRule en tu lógica de pruebas:

Kotlin

    @RunWith(AndroidJUnit4::class.java)
    @LargeTest
    class MyClassTest {
        @get:Rule
        val activityRule = ActivityTestRule(MyClass::class.java)

        @Test fun myClassMethod_ReturnsTrue() { ... }
    }
    

Java

    @RunWith(AndroidJUnit4.class)
    @LargeTest
    public class MyClassTest {
        @Rule
        public ActivityTestRule<MyClass> activityRule =
                new ActivityTestRule(MyClass.class);

        @Test
        public void myClassMethod_ReturnsTrue() { ... }
    }

ServiceTestRule

Esta regla proporciona un mecanismo simplificado para iniciar y finalizar el servicio antes y después de la prueba. También garantiza que el servicio se conecte correctamente cuando se inicia o se vincula un servicio. El servicio se puede iniciar o vincular mediante uno de los métodos auxiliares. Se detiene o desvincula automáticamente después de que se completa la prueba, y se completa cualquier método anotado con @After.

Kotlin

    @RunWith(AndroidJUnit4::class.java)
    @MediumTest
    class MyServiceTest {
        @get:Rule
        val serviceRule = ServiceTestRule()

        @Test fun testWithStartedService() {
            serviceRule.startService(
                Intent(ApplicationProvider.getApplicationContext<Context>(),
                MyService::class.java))

            // Add your test code here.
        }

        @Test fun testWithBoundService() {
            val binder = serviceRule.bindService(
                Intent(ApplicationProvider.getApplicationContext(),
                MyService::class.java))
            val service = (binder as MyService.LocalBinder).service
            assertThat(service.doSomethingToReturnTrue()).isTrue()
        }
    }
    

Java

    @RunWith(AndroidJUnit4.class)
    @MediumTest
    public class MyServiceTest {
        @Rule
        public final ServiceTestRule serviceRule = new ServiceTestRule();

        @Test
        public void testWithStartedService() {
            serviceRule.startService(
                    new Intent(ApplicationProvider.getApplicationContext(),
                    MyService.class));
            // Add your test code here.
        }

        @Test
        public void testWithBoundService() {
            IBinder binder = serviceRule.bindService(
                    new Intent(ApplicationProvider.getApplicationContext(),
                    MyService.class));
            MyService service = ((MyService.LocalBinder) binder).getService();
            assertThat(service.doSomethingToReturnTrue()).isTrue();
        }
    }
    

Recursos adicionales

Para obtener más información sobre el uso de las reglas JUnit en las pruebas de Android, consulte los siguientes recursos.

Muestras