android / android/android-test
Calling finish() after onStart() does not move its state to DESTROYED but remains in RESUMED
- 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
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