Moja aplikacja dla Androida ma usługę, która wysyła powiadomienia do użytkownika na podstawie parametrów takich jak liczba uruchomień aplikacji. Powiadomienia są wysyłane o różnych porach w różnych sytuacjach. Chcę sprawdzić, czy powiadomienia są wysyłane w odpowiednim czasie we wszystkich różnych przypadkach. Czy Android zapewnia sposób takiego testowania?Testowanie powiadomień w Androidzie
Odpowiedz
Przeczytaj proszę ten artykuł
http://qathread.blogspot.com/2015/05/espresso-uiautomator-perfect-tandem.html
Tutaj można znaleźć ładne wyjaśnienie tego tematu:
Espresso
dla Androida jest doskonały i szybki Test ramy automatyki, ale ma jedną istotną ograniczenie - w aplikacji można testować tylko w kontekście testu.Oznacza to, że nie jest możliwe, aby automatyzować testy dla takiej aplikacji funkcje, takie jak:
- powiadomień push aplikacja
- synchronizacja kontakt
- żeglujących z innej aplikacji do aplikacji w ramach testu,
ponieważ masz do czynienia z innymi aplikacjami z urządzenia mobilnego -
NotificationBar
,Contacts
lubPeople
aplikacja, itp.W rzeczywistości nie było to możliwe do czasu wydania
UIAutomator 2.0
. Podpis w blogu na temat Androida Developers - "... Najważniejsze, żeUI Automator
jest teraz oparty na Android Instrumentation ...". A ponieważ z tego możemy wykonać testyUIAutomator
, a takżeEspresso
testów przy użyciuInstrumentation test runner
.Poza tym możemy łączyć UIAutomator testuje razem z
Espresso
testów, a to daje nam realną władzę i kontrolę nad telefon i stosowania badanego.
Powiadomienie Testowanie przy użyciu UIAutomator: -
Wystarczy przejść przez poniższy kod. Pomoże Ci w testowaniu powiadomienia.
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);`
Nie zapomnij dodać zależności UIAutomator w build.gradle.
`//UIAutomator dependency
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'`
opublikowane przez @ dcr24 Nie mam wystarczająco dużo reputacji, aby skomentować. Odpowiedź Prema Choudhary jest całkiem genialna, ale ważne jest, aby pamiętać, że działa tylko na założeniu, że urządzenie jest odblokowane, w przeciwnym razie device.openNotification() nie będzie działać na ekranie blokady. –
Z jakiej usługi powiadamiania korzystasz? –
Używam usługi w tle, która wysyła powiadomienie co kilka dni. – user12345
Mam na myśli, Czy korzystasz z prostego powiadomienia lub powiadomienia push? –