2015-11-03 12 views
5

Benim android uygulamasında, uygulamanın çalışma sayısı gibi parametrelere dayanarak kullanıcıya bildirimler gönderen bir hizmet var. Bildirimler farklı durumlarda farklı zamanlarda gönderilir. Bildirimlerin tüm farklı durumlarda doğru zamanlarda gönderilip gönderilmediğini test etmek istiyorum. Android böyle bir test yolu sağlar mı?Android'de Test Bildirimleri

+0

Hangi bildirim hizmetini kullanıyorsunuz? –

+0

Birkaç günde bir bildirim gönderen bir arka plan hizmeti kullanıyorum. – user12345

+0

Yani, basit bir bildirim mi kullanıyorsunuz? –

cevap

1

Oku lütfen bu konunun güzel bir açıklama bulacağını İşte

http://qathread.blogspot.com/2015/05/espresso-uiautomator-perfect-tandem.html

bu madde:

Android için

Espresso mükemmel ve hızlı test otomasyonu çerçevesi, ama önemli birine sahiptir sınırlama - uygulamanızın içinde yalnızca 'u test kapsamında çalıştırabilirsiniz. gibi böyle bir uygulama için özellikleri testlerini otomatik hale getirmek mümkün olmadığı anlamına gelir

: Test edilen uygulamanıza başka bir uygulamanın gezinme

  • uygulama push bildirimleri
  • kontak senkronizasyon
  • ,
  • Mobil aygıttaki diğer uygulamalarla uğraşmak zorunda olduğunuzdan,

, NotificationBar, Contacts veya People uygulaması, vb.

Aslında UIAutomator 2.0'un serbest bırakılmasına kadar mümkün değildi. Android Developers'ın blog yayınında belirtilen olarak, "... En önemlisi, UI Automator artık Android cihazlarına dayanıyor ...". Ve bunun olması nedeniyle UIAutomator testlerinin yanı sıra Espresso testleri testlerini Instrumentation test runner kullanarak çalıştırabiliriz.

Buna ek olarak biz UIAutomator Espresso testlerle birlikte test eder ve bu test altında bize telefonla ve uygulama üzerinde gerçek güç ve kontrol sağlar birleştirebilirsiniz. UIAutomator kullanarak

7

Test Bildirim: -

Sadece aşağıdaki kod geçmesi. Bildirimi test etmede size yardımcı olacaktır.

UiDevice device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()); 
device.openNotification(); 
device.wait(Until.hasObject(By.text(NOTIFICATION_TITLE)), TIMEOUT); 
UiObject2 title = device.findObject(By.text(NOTIFICATION_TITLE)); 
UiObject2 text = device.findObject(By.text(NOTIFICATION_TEXT)); 
assertEquals(NOTIFICATION_TITLE, title.getText()); 
assertEquals(NOTIFICATION_TEXT, text.getText()); 
title.click(); 
device.wait(Until.hasObject(By.text(ESPRESSO.getName())), TIMEOUT);` 

UIAutomator bağımlılıklarını build.gradle içine eklemeyi unutmayın.

`//UIAutomator dependency 
    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'` 
+0

gönderen @ dcr24 Henüz yorum yapılmamış yeterli bir saygınlık yok. Prem Choudhary'ın cevabı oldukça zekice olsa da, bunun sadece cihazın kilidinin açıldığı varsayımına göre çalıştığını belirtmek önemlidir, aksi halde device.openNotification() kilit ekranı için çalışmayacaktır. –