¿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.

¿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.

2 Solutions collect form web for “¿Es posible probar una actividad abstracta con Robolectric”

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.

  • Robolectric no utiliza ShadowWebView como la superclase de una clase que extiende WebView. MustOverrideException en su lugar
  • TypeNotPresentException al ejecutar el testcase de Android con robolectric y eclipse
  • Cómo activar el registro roboeléctrico
  • Las pruebas Robolectric fallan cuando se ejecutan en CLI
  • Robolectric + PowerMock + Mockito no funciona
  • Error en el corredor al realizar pruebas con Robolectric
  • Android.content.res.Resources $ NotFoundException en Robolectric 2.4
  • Prueba de Android Handler.postDelayed
  • Puede (debe) robolectric utilizarse para probar el filtro de intención
  • GetSupportActionBar () devuelve null con Robolectric
  • Ejecutar Robolectric en IDEA detrás del proxy
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.