No se pueden ejecutar varios casos de Robotium juntos, ¿quién sabe por qué?
Resumen de los problemas comunes de prueba de Robotium:
1. La clase de prueba de Robotium ActivityInstrumentationTestCase2 hereda la clase TestCase, es decir, la clase de prueba de Robotium es una instancia de junit3 y no tiene las características. de junit4 Por ejemplo, al usar anotar para identificar nuevas características de subclases, es imposible implementar @beforeclass, @afterclass y otras características. Los casos de prueba solo se pueden escribir escribiendo casos de configuración, desmontaje y prueba comenzando con test.
2. Algunos botones no tienen cadena ni texto. Solo se puede hacer clic en ellos a través del índice. Esto es muy poco intuitivo. Además, el índice del botón no es fijo. recargado, los resultados de la prueba no se pueden garantizar. Después de verificar el código fuente de Robotium, descubrí que la mayoría de los métodos de clic finalmente convierten los parámetros entrantes en vistas y luego llaman a clickOnView, por lo que escribí un método para hacer clic en el ID del botón. El ID del botón debe obtenerse del código fuente del objeto de prueba. Por ejemplo, en la navegación hay una barra de menú donde la mayoría de botones de datos son de este tipo.
3. Algunas actividades no pueden ganar foco después de hacer clic. Puede obtener el contenido de la actividad a través de otros métodos, como Activity act = solo.getCurrentActivity(); act.findViewById Obtenga el control.
4. En el caso de varias pantallas, puede deslizarse desplazándose, solo.scrollToSide(Solo.LEFT). Si las múltiples pantallas pertenecen a una actividad, puede ejecutar el caso para obtener datos sin deslizarse. .
5. A veces falla el método de clic de la vista de texto o del botón. La respuesta es agregar esta oración al archivo AndroidManifest.xml del programa bajo prueba:
6. ¿Qué debo hacer si quiero leer y escribir en la tarjeta SD en el programa de prueba de robotium? La respuesta es agregar
7. Cómo determinar el éxito de agregar elementos dinámicamente a la vista de lista. Se puede juzgar por la cantidad de elementos antes y después de la adición. Primero determine los atributos del elemento agregado y luego obtenga el elemento mediante el método correspondiente. Por ejemplo, agregar un elemento puede requerir tres vistas de texto, por lo que la diferencia en el número obtenido antes y después de getCurrentTextViews(View) es tres. Por ejemplo, agregue una lista negra a la lista negra.
(1) Algunas vistas de lista solo tienen web, o principalmente texto. Puede obtener el contenido de la fila a través del método getItemAtPosition(i).toString().
solo.clickOnText(chooseProvPage.getListView().getItemAtPosition(i).toString());
(2) Algunas vistas de lista contienen múltiples vistas de prueba o botones, puede usar el método findViewById para obtener el contenido de un elemento en una fila determinada.
8. La tostada no se puede capturar. Esto no está claro. Después de experimentar un poco, puede usar la función waitForText para capturar texto. El valor de retorno de este método es booleano, por lo que devolver verdadero significa que lo ha encontrado.