android / android/android-test

Calling finish() after onStart() does not move its state to DESTROYED but remains in RESUMED

Abierto
#800 1 comentario 3 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Java
Estrellas
1.2k
Forks
342
Merge medio
11 h 29 min
PR fusionados (30 d)
2

Descripción

### Description
In Robolectric local unit test,
calling finish() in onStart() does not move its state to DESTROYED but remains in RESUMED.

This StackOverflow question (https://stackoverflow.com/questions/64525956/junit-framework-assertionfailederror-expecteddestroyed-but-wasresumed) may address the same issue.

### Steps to Reproduce
```
public class FinishOnCreateActivity extends AppCompatActivity {
@Override
public void onCreate() {
super.onCreate();
finish();
}
}

public class FinishOnStartActivity extends AppCompatActivity {
@Override
public void onStart() {
super.onStart();
finish();
}
}

@RunWith(AndroidJUnit4.class)
public class ActivityTest {
@Test
public void testFinishOnCreateActivity() {
try (ActivityScenario scenario =
ActivityScenario.launch(FinishOnCreateActivity.class)) {
assertThat(scenario.getState()).isEqualTo(Lifecycle.State.DESTROYED);
}
}

@Test
public void testFinishOnStartActivity() {
try (ActivityScenario scenario =
ActivityScenario.launch(FinishOnStartActivity.class)) {
assertThat(scenario.getState()).isEqualTo(Lifecycle.State.DESTROYED);
}
}
}
```

### Expected Results
Pass both tests

### Actual Results
Pass testFinishOnCreateActivity(),
Fail testFinishOnStartActivity().

### AndroidX Test and Android OS Versions
androidx.test 1.3.0
robolectric 4.4

### Link to a public git repo demonstrating the problem:
None

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Empieza reproduciendo el problema con los ejemplos FinishOnCreateActivity y FinishOnStartActivity y las dos pruebas de ActivityScenario del informe. Compara el estado del Lifecycle observado después de finish() en onCreate() y onStart(); se considera terminado cuando ambas pruebas indiquen Lifecycle.State.DESTROYED.

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
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.