Dos robotium caso de prueba, pero el segundo colgar no responde (en JUnit View)
Me las arreglé para escribir dos casos de prueba en mi XXTest.java con robotium-solo-3.2.1.jar incluido, por suerte en JUnit ver que muestra el primero está hecho, que el dispositivo exactamente trabajado (en el emulador también).
Luego procede a la segunda, pero sólo colgando allí para siempre! Lo siento no puedo adjuntar captura de pantalla con mi cuenta.
- Utilice tanto InstrumentationTestRunner como AndroidJUnitRunner con Robotium y Espresso
- Las pruebas existentes de la interfaz de usuario de Android dejaron de funcionar después de cambiar a AndroidJUnitRunner
- Robotium: ¿Cómo espero que termine la carga antes de continuar?
- Cuchara + TeamCity
- Android Robotium - ¿Cómo administrar el orden de ejecución de los testcases?
Aquí está mi código:
public class XXTest extends ActivityInstrumentationTestCase2<SignInActivity> { private Solo solo; private Activity mActivity; private static final String account = "someone"; private static final String pwd = "123456"; @SuppressWarnings("deprecation") public XXTest() { super("com.acompany.android", SignInActivity.class); } protected void setUp() throws Exception { super.setUp(); this.mActivity = getActivity(); solo = new Solo(getInstrumentation(), mActivity); } @Smoke public void testLogIn() throws Exception { EditText accountInput = (EditText) solo.getView(R.id.edit_account); EditText pwdInput = (EditText) solo.getView(R.id.edit_password); solo.clearEditText(accountInput); solo.clearEditText(pwdInput); solo.enterText(accountInput, account); solo.enterText(pwdInput, pwd); solo.clickOnButton(mActivity.getResources() .getString(R.string.text_sign_in)); solo.waitForActivity("MainActivity"); solo.assertCurrentActivity("Expect MainActivity shown...", "MainActivity"); boolean expected = true; boolean actual = solo.searchButton(mActivity.getResources().getString( R.string.welcome_dialog_start)); assertEquals("find friend dialog not shown", expected, actual); } @Smoke public void testOpenPref() throws Exception { solo.goBack(); solo.clickOnMenuItem(mActivity.getResources().getString( R.string.text_preferences)); solo.assertCurrentActivity("Expected PrefActivity..", "PrefActivity"); solo.goBackToActivity("MainActivity"); solo.assertCurrentActivity("Expected MainActivity..", "MainActivity"); } protected void tearDown() throws Exception { super.tearDown(); } }
He buscado la muestra de NotePadTest.java de Robotium tutorial, esos 3 casos de prueba en ella son sólo trabajo bien!
Por favor, dime dónde va mal? ¿Estoy perdiendo algo en alguna parte? ¿Por qué no funciona el segundo caso de prueba?
Por cierto ¿Puede haber más de una clase que extiende ActivityInstrumentationTestCase2 en un proyecto de prueba? ¡curioso!
- (Robotium) Cómo seleccionar un RadioButton en un RadioGroup
- ¿Robotium es confiable para probar cuán rápido comienzan las actividades y fragmentos?
- ¿Por qué obtengo un NoClassDefFoundError al ejecutar mi prueba en ActionBarActivity?
- Cómo inyectar el evento de clic con Android UiAutomation.injectInputEvent
- Robotium - Escoja una cuenta en AccoutPicker con solo
- ¿Cómo puedo realizar mis pruebas independientes de Robotium UI en paralelo?
- ¿Cómo puedo comprobar en Robotium que la aplicación ha terminado?
- ¿Cómo averiguar qué actividad está encima de la pila usando Robotium / Android SDK?
Necesitas usar solo.finishOpenedActivities () en tu tearDown ().
@ Robert – este es el problema con la actividad de prueba en sí, no a robotium específicos.
Para el primer método de prueba: el flujo básico que es como a continuación: 1> en el método setUp () cargar la actividad principal (decir MainActivity )> hacer algunas operaciones en su testMethod1 () – que los resultados de aterrizar en otra actividad AnotherActivity )> y en tearDown () matas la actividad iniciada en el método setUp () que es MainActivity
Nota: pero AnotherActivity permanece en vivo
Para el segundo método de prueba: el flujo básico que se muestra a continuación: 2> en el método setUp (), intente cargar la actividad principal (digamos MainActivity ) de nuevo, aunque la AnotherActivity previamente lanzada no se ha matado, por lo que cuelga allí , It Ni siquiera entrar en la prueba testMethod2 () fr ejecución –
Nota: el corredor gráfico de eclipse muestra que se bloquea mientras el marcador de ejecución apunta a testMethod2 (), la gente piensa que se quedó atascado en testMethod2 () – pero el problema está en setUp () para testMethod2 () no en testMethod2 ().
Solución: 1> Basta con mantener un vistazo en su actividad cruzada de navegación – al final de cada testMethod () use solo.goBack () para volver a la misma actividad principal MainActivity de su actividad actual (se aterrizó en causa de sus acciones )
Results – al final de testMethod1 () sólo permanece la actividad principal que se abrió en setUP (). Así que se mata satisfactoriamente .No La actividad permanece activa y para testMethod2 (). El setUP () puede cargar MainActivity nuevamente sin un bloqueo – y se ejecuta testMethod2 ().
Espero que aclare
- ¿Cómo puedo hacer que el texto de TextView sea de dos tamaños diferentes?
- JQTouch ya no es compatible con Android?