android / android/android-test

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

Đang mở
#800 1 bình luận 3 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Java
Star
1.2k
Fork
342
Merge trung bình
11 giờ 29 phút
Pull request đã merge (30 ngày)
2

Mô tả

### 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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện vấn đề với các ví dụ FinishOnCreateActivity và FinishOnStartActivity cùng hai bài kiểm thử ActivityScenario trong báo cáo. So sánh trạng thái Lifecycle được quan sát sau finish() trong onCreate() và onStart(); hoàn tất khi cả hai bài kiểm thử đều báo cáo Lifecycle.State.DESTROYED.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
android, java
Lĩnh vực
mobile, testing
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
42/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.