android / android/android-test

ActivityScenario: Custom instanciation

Abierto
#433 1 comentario 7 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Java
Estrellas
1.2k
Forks
342
Merge medio
11 h 29 min
PR fusionados (30 d)
2

Descripción

Description

The launch(Activity) method can't be customized very well, especially compared to launchFragmentInContainer / FragmentScenario. That makes it particularly hard to test / verify code that happens during onCreate(). In our example, a MainActivity (that contains the NavHostFragment for Jetpack Navigation) navigates to an on-boarding screen on first start.
Verifying this code is hard with the current ActivityScenario as the initial state can't be controlled and thus we can't properly mock / spy the navigation controller (Compared to how it can be done with FragmentScenario).

Expected Results

Ideally, launch(Activity) take a custom ActivityFactory or Lambda like launchFragmentInContainer that allows to customize activity creation. A convenience parameter to decide which state to launch into (i.e. CREATED, RESUMED) won't hurt either.

Link to a public git repo demonstrating the problem:

See https://issuetracker.google.com/issues/139695101

Versions
testImplementation("androidx.arch.core:core-testing:2.0.1")
testImplementation("androidx.test.espresso:espresso-core:3.2.0")
testImplementation("androidx.test.ext:junit-ktx:1.1.1")
testImplementation("io.mockk:mockk:1.9.3")
testImplementation("org.robolectric:robolectric:4.3")

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza por el punto de entrada ActivityScenario.launch(Activity) y compara sus opciones de personalización con launchFragmentInContainer y FragmentScenario. Define cómo deberían funcionar una ActivityFactory personalizada y un estado inicial opcional CREATED o RESUMED, y añade después cobertura para la creación de Activities personalizadas y un estado de ciclo de vida controlado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
android, java
Área
mobile, testing
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.