android / android/android-test
Calling finish() after onStart() does not move its state to DESTROYED but remains in RESUMED
- Langage dominant
- Java
- Étoiles
- 1.2k
- Forks
- 342
- Merge moyen
- 11 h 29 min
- PR mergées (30 j)
- 2
Description
### 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
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par reproduire le problème avec les exemples FinishOnCreateActivity et FinishOnStartActivity ainsi qu’avec les deux tests ActivityScenario du rapport. Comparez l’état du Lifecycle observé après finish() dans onCreate() et onStart() ; le travail est terminé lorsque les deux tests indiquent Lifecycle.State.DESTROYED.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- android, java
- Domaine
- mobile, testing
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 42/100