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.

  • Tratando de probar un módulo de Android en la aplicación MultiDex, com.android.test.runner.MultiDexTestRunner no se reconoce
  • Junit4 abrir un getResources (). OpenRawResource usando mockito ejecuta nullpointer
  • AndroidJUnit4.class + org.junit.Assume.assumeTrue = AssumptionViolatedException
  • No se puede ejecutar JUnit 4 caso de prueba en el proyecto Eclipse Android
  • Prueba de errores de EditText con Espresso en Android
  • Necesita ayuda para escribir una prueba de unidad usando Mockito y JUnit4
  • Espresso cómo hacer clic en un ImageView colocado en el primer elemento de la lista?
  • Jenkins y Running AndroidJUnitRunner Instrumentation Tests
  • Prueba de unidad MVP usando mockito con los oyentes de eventos
  • Casos de prueba de unidad con JUnit + (Robolectric o Mockito o ambos en Android)
  • Ejecución de pruebas Android método setUp () se llama varias veces
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.