¿Es posible probar una actividad abstracta con Robolectric
Utilizo las clases abstractas de la actividad en mi código para bien, abstraer lejos algunas características de las clases de la actividad.
Estoy tratando de probar las clases de actividad abstracta usando Robolectric
y el gradle-android-test-plugin
usando subclases que amplían la clase abstracta. Parece que no puedo conseguir que funcione.
- Cómo ejecutar pruebas de unidad con Android Studio
- Prueba de una biblioteca de Android con Robolectric
- Cómo probar PreferenceFragment con Robolectric
- Test Robolectric ListView no se actualiza después de cambios de valor en el adaptador
- Robolectric includeAndroidResources not found
¿Alguien tiene alguna experiencia en esta área y es incluso posible? La estructura básica es:
@RunWith(RobolectricGradleTestRunner.class) public class AbstractActivityTest { private ActivityTest activity; @Before public void setUp() throws Exception { activity = Robolectric.buildActivity(ActivityTest.class).create().get(); } private class ActivityTest extends AbstractActivity { // do something } }
Inicialmente, recibí el mensaje de error la clase sub no era estática por lo que lo hizo estático. Ahora tengo los siguientes dos falla:
initializationError FAILED java.lang.Exception: Test class should have exactly one public constructor initializationError FAILED java.lang.Exception: No runnable methods
Cualquier prueba obviamente verdad que pongo en métodos @Test
éxito.
- Robolectric 3.0 no funciona con AppCompat 21+
- Robolectric sombra no funciona
- No se puede localizar un Java Runtime Android Studio Robolectric
- Cómo activar el registro roboeléctrico
- Prueba de vistas personalizadas con Robolectric: Ancho y altura siempre son 0
- Robolectric - screen_action_bar.xml line # -1 (lo siento, aún no implementado): Error al inflar la clase <unknown>
- TypeNotPresentException al ejecutar el testcase de Android con robolectric y eclipse
- Android Robolectric y elementos decorativos vectoriales
El primer error que dice que agregó el constructor no predeterminado a su clase de prueba o cambió el nivel de acceso por defecto. Pero como dice junit
Test clase debe tener por lo menos un constructor público.
El segundo dice que al menos un método en la clase de prueba debe tener @Test
anotación ( junit 4
) o comienza con la subcadena de prueba ( junit 3
).
Yo puedo hacer exactamente lo que estás tratando de hacer: subclase la actividad abstracta y la instancia de la clase concreta.
Sin embargo, es necesario declarar la clase extendiendo la actividad abstracta en su propio archivo público. Si es una clase anidada, Robolectric fallará en instanciarlo.
No sé por qué, sin embargo.
- Cómo poner un oyente onclick dentro de un servicio
- Escribir en flujo de salida VpnService no proporciona ninguna respuesta