Espresso + Junit4 – iniciar sesión una vez antes de ejecutar todas las pruebas

Quiero escribir algunas pruebas automatizadas para uno de mi aplicación. Toda la funcionalidad requiere inicio de sesión.

Por lo tanto, he escrito la prueba, pero para cada prueba, es hacer login y probar la funcionalidad. ¿Hay de todos modos que me ayudará a iniciar sesión sólo una vez y luego ejecutar todas las pruebas?

La manera más fácil sería escribir todas las pruebas en un solo método de prueba. Pero creo que sería fea manera de lograr eso. Cualquier solución más limpia así que, la prueba se conectará solamente una vez y después funcionará el sistema de la prueba.

El siguiente es mi código de prueba:

@RunWith(AndroidJUnit4.class) public class AllDisabledTest { public static final String USER_NAME = "all_disabled"; public static final String DISPLAY_NAME = "All Disabled"; public static final String PASSWORD = "1234"; @Rule public ActivityTestRule<LoginActivity> mActivityRule = new ActivityTestRule<>( LoginActivity.class); @Before public void loginToApp(){ onView(withId(R.id.edit_email)).perform(replaceText(USER_NAME)); onView(withId(R.id.edit_password)).perform(replaceText(PASSWORD)); onView(withId(R.id.login_button)).perform(click()); } @Test public void checkIfFoodItemAddedToCart(){ onData(anything()).inAdapterView(withId(R.id.menu_item_grid)).atPosition(2).perform(click()); onData(anything()).inAdapterView(withId(R.id.listview)).atPosition(0).onChildView(withId(R.id.item_name)).check(matches(withText("BLUEITEM"))); } } 

Gracias de antemano :).

One Solution collect form web for “Espresso + Junit4 – iniciar sesión una vez antes de ejecutar todas las pruebas”

Puede utilizar métodos con anotaciones @BeforeClass y @AfterClass.

 @RunWith(AndroidJUnit4.class) public class AllDisabledTest { public static final String USER_NAME = "all_disabled"; public static final String DISPLAY_NAME = "All Disabled"; public static final String PASSWORD = "1234"; @Rule public ActivityTestRule<LoginActivity> mActivityRule = new ActivityTestRule<>( LoginActivity.class); } @BeforeClass public static void setUpBeforeClass() { // do login stuff here } @AfterClass public static void tearDownAfterClass() { // ... } // ... } 

Nota: Los métodos @BeforeClass y @AfterClass deben ser estáticos.

  • Ejecución de pruebas Android método setUp () se llama varias veces
  • Junit testing con gradle para un proyecto android
  • Prueba JUnit con Robolectric: java.lang.InstantiationException
  • Recursos $ NotFoundException al llamar a Robolectric.buildActivity ()
  • Excepción que ejecuta pruebas de JUnit con AndroidStudio: java.lang.NoClassDefFoundError: android / os / Parcelable
  • RxJava file.createNewFile () devuelve siempre TRUE
  • InitializationError para AndroidJunit4
  • Prueba de unidad MVP usando mockito con los oyentes de eventos
  • Akquinet (Android con el arquetipo de prueba) - las pruebas de unidad no se ejecutan
  • Prueba de la excepción ClassNotFound
  • Error: Error de ejecución para la tarea ': app: transformClassesWithMultidexlistForDebugAndroidTest'
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.