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

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.

  • Recursos $ NotFoundException al llamar a Robolectric.buildActivity ()
  • Robolectric 2 - crear la actividad bajo prueba con la intención
  • Comprobación de que se ha iniciado una actividad con FLAG_ACTIVITY_CLEAR_TOP
  • ¿Hay alguien por ahí usando Robolectric sin Maven en IntelliJ?
  • Obtención de ClassNotFoundException al ejecutar pruebas Robolectric con el complemento Maven surefire
  • Prueba de ViewPager (y CursorLoader) con Robolectric
  • Cambiar la conectividad de Android con Robolectric
  • Prueba de base de datos SQLite en Robolectric
  • Robolectric: ejecutar múltiples pruebas falla
  • Robolectric 2.1 y Eclipse
  • Robolectric + OkHttp + retrofit + prueba de unidad rxJava
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.