2012-11-12 34 views
7

Đây là phương pháp của tôi, nó hoạt động tốt và hiển thị Hộp thoại.Thử nghiệm Android: Hộp thoại. Kiểm tra nó làShowing()

public void showDialog(){ 
    final Dialog dialog = new Dialog(this); 
    dialog.setContentView(R.layout.mylayout); 
    dialog.show(); 
} 

Tôi có dự án thử nghiệm và tôi muốn kiểm tra xem Hộp thoại có hiển thị không. Tôi muốn áp dụng phương thức .isShowing(). Một cái gì đó như thế này ...

assertTrue(dialog.isShowing()); 

Nhưng tôi không biết làm thế nào để đến biến hộp thoại trong thử nghiệm của mình.

Tôi không sử dụng Robotium (đây không phải là tùy chọn cho tôi). Tôi hiện đang sử dụng ActivityUnitTestCase để kiểm tra. Nếu cần thêm thông tin, xin đừng ngần ngại hỏi.

EDIT

Tôi đã cố gắng sử dụng các câu trả lời dưới đây bằng cách làm cho Dialog công

public Dialog getDiag(){ 
    return dialog; 
} 

Sử dụng câu trả lời này: Tôi có một vấn đề mới khi tôi chạy ShowDialog() trong các thử nghiệm, nó phá vỡ khi nó chạm: dialog.show();

android.view.WindowManager $ BadTokenException: * Không thể thêm cửa sổ - thẻ rỗng

Trả lời

5

Khai Dialog ngoài chức trách ShowDialog và sau đó thực hiện một phương thức mà trả dụ Dialog này.

public Dialog getDiag(){ 
    return dialog; 
} 

và sau đó làm một cái gì đó như thế này

assertTrue(new YourClassName().getDialog().isShowing()); 
+0

Cảm ơn bạn Tôi đã thay đổi phương pháp của tôi để trả lại Dialog, tôi sau đó có thể ít nhất là truy cập vào hộp thoại trong thử nghiệm của tôi. Nhưng tôi không thể gọi Dialog.show() do đó tôi đã lấy nó ra khỏi phương thức của mình và tôi sẽ gọi show() sau khi Dialog được trả về (trong hoạt động). –

Các vấn đề liên quan