2012-11-12 22 views
7

İşte yöntemim, iyi çalışıyor ve İletişim kutusunu gösterir.Android Test Etme: İletişim Kutusu. Check isShowing()

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

Bir test projem var ve Iletişim kutusunun görüntülendiğini test etmek istiyorum. .isShowing() yöntemini uygulamak istiyorum. Böyle bir şey ...

assertTrue(dialog.isShowing()); 

Ama benim test içindeki iletişim değişkene nasıl bilmiyorum.

Robotium kullanmıyorum (bu benim için bir seçenek değil). Şu anda ile test etmek için ActivityUnitTestCase kullanıyorum. Daha fazla bilgi gerekiyorsa lütfen sormaya çekinmeyin. Ben

public Dialog getDiag(){ 
    return dialog; 
} 

bu cevabı kullanarak iletişim kamu yaparak aşağıda cevabını kullanmaya çalıştılar

DÜZENLEME: testinde() showDialog çalıştırdığınızda ben, yeni bir sorun var isabet ettiğinde kırılıyor: dialog.show();

android.view.WindowManager $ BadTokenException: - belirteç boş

cevap

5

showDialog fonksiyonu dışında Dialog bildirmek ve daha sonra bu Diyalog örneği döndüren bir yöntem uygulamak * açılamıyor pencere ekleyin.

public Dialog getDiag(){ 
    return dialog; 
} 

ve sonra o zaman en azından benim testinde İletişim Kutusu'na erişebilir, bu

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

gibi bir şey ben Dialog dönmek benim yöntemi değişti teşekkürler yapmak. Ancak Dialog.show() yöntemini arayamıyorum, bu yüzden bunu yöntemimin dışına çıkardım ve Diyalog döndükten sonra (etkinlik içinde) show() öğesini çağıracağım. –

İlgili konular