Robolectric es-singlepane (/ solo-fragmento) -test
Acabo de empezar a probar Robolectric y como estoy jugando actualmente con el ejemplo de Dynamic Single / Dualpane-Fragment de la página de desarrollador de Google pensé en integrar allí y hacer algunas pruebas básicas.
Lo primero que quería probar es que el manejo de single / dualpane funcione correctamente .
- Robolectric: cómo probar una SherlockActivity
- No se puede usar PowerMock con Robolectric
- Android Lolipop Appcompat problemas con Robolectric
- Cómo burlar los permisos para realizar pruebas en Android?
- Obteniendo java.lang.RuntimeException: Stub al ejecutar Robolectric a través de Maven
Así que básicamente se reduce a:
- Pequeño dispositivo y retrato -> solo panel
- Dispositivo grande & langscape -> doble panel
Como el código para el ejemplo es en línea (y como es una plantilla estándar en Android-Studio) no voy a copiar aquí de nuevo. Sólo una cosa: Al iniciar la actividad determina si su panel único o dual verificando:
if (findViewById(R.id.exercise_detail_container) != null) [..]
Parece que para Robolectric su siempre dualpane.
Así que mi prueba singlepane es bastante sencillo:
@Config(emulateSdk = 18) @RunWith(RobolectricTestRunner.class) public class SinglePaneTest { private ExerciseListActivity activity; private FragmentManager fragmentManager; @Before @Config(qualifiers = "port-small") public void setup() { this.activity = Robolectric.buildActivity(ExerciseListActivity.class).create().resume().get(); this.fragmentManager = activity.getFragmentManager(); } @Test @Config(qualifiers = "port-small") public void testSinglePane() { assertNull(activity.findViewById(R.id.exercise_detail_container)); } }
Pero la prueba falla.
¿Alguien me puede decir por qué? Esto debería estar funcionando perfectamente bien, ¿no?
Para que conste: Sí, en el emulador todo está funcionando bien.
- Prueba de fragmentos con Robolectric 3.0
- ¿Qué probar con Robolectric?
- ¿Cómo puedo sombrear el PackageManager con Robolectric
- Automatización de la caja de prueba de la unidad Android: biblioteca Robolectric vs marco de pruebas de Android
- Java.lang.IllegalStateException: debe haber habido alguna superposición para resourceIdToResName
- Test Robolectric ListView no se actualiza después de cambios de valor en el adaptador
- Módulos Robolectric y Library con archivos de recursos
- ¿Cómo puedo detectar con Robolectric que onBackPressed se llama programáticamente?
Invertir orden: small-port
No sé si se arreglará, pero es cierto que deben aparecer en el orden de la tabla: http://developer.android.com/guide/topics/resources/providing-resources. Html
Si utiliza varios calificadores para un directorio de recursos, debe agregarlos al nombre del directorio en el orden en que aparecen en la tabla.
El ejemplo de Robolectric apoya este ordenamiento:
Calificadores para la resolución de recursos, como "fr-normal-port-hdpi".
Esto parece ser arreglado con la versión 2.4 de robolectric!
- Vertex Shader no puede compilar. No puedo encontrar el error
- El servicio de Android que se estaba ejecutando cuando se apagó el teléfono se inicia automáticamente cuando se inicia el teléfono