Tôi đang cố gắng kiểm tra đơn vị xử lý onClick của đơn đăng ký của tôi. Onclick thực hiện tìm kiếm đơn giản dựa vào API REST, trả về kết quả và cập nhật giao diện người dùng.
Chi tiết:
Onclick thực thi AsyncTask, doInBackground truy vấn REST API và trả về kết quả. OnPostExecute lấy kết quả và gán một ListAdapter mới cho ListView với dữ liệu.
Vấn đề:
Các onPostExecute không được gọi bằng các Runner thử nghiệm vì nó trên cùng một giao diện người dùng Chủ đề và ngăn chặn các cuộc gọi. Có một số mẫu để giải quyết vấn đề này. Tuy nhiên, nếu tôi đặt AsyncTask trong Runnable và sử dụng LatchCountdown để chờ kết quả, tôi nhận được ngoại lệ CalledFromWrongThread.
Có giải pháp nào tốt cho đơn vị kiểm tra AsyncTask cập nhật giao diện người dùng không? Hoặc một thiết kế có thể thử nghiệm hơn mà tôi có thể thực hiện?
Điều này nghe có vẻ giống như một ActivityInstrumentationTestCase với tôi ... – dmon
Điều này đang được thực hiện trong lớp ActivityInstrumentationTestCase2. – bcdennis72
Asynctask của bạn sẽ chạy tốt sau đó ... – dmon