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
cevap
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
veyaPeople
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ı nedeniyleUIAutomator
testlerinin yanı sıraEspresso
testleri testleriniInstrumentation 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
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'`
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. –
Hangi bildirim hizmetini kullanıyorsunuz? –
Birkaç günde bir bildirim gönderen bir arka plan hizmeti kullanıyorum. – user12345
Yani, basit bir bildirim mi kullanıyorsunuz? –