2015-11-03 9 views
5

मेरी एंड्रॉइड ऐप में ऐसी सेवा है जो ऐप के रनों की संख्या जैसे पैरामीटर के आधार पर उपयोगकर्ता को नोटिफिकेशन भेजती है। अधिसूचना विभिन्न स्थितियों में अलग-अलग समय पर भेजी जाती है। मैं यह जांचना चाहता हूं कि सभी अलग-अलग मामलों में सही समय पर सूचनाएं भेजी जाती हैं या नहीं। एंड्रॉइड ऐसे परीक्षण का एक तरीका प्रदान करता है?एंड्रॉइड में परीक्षण अधिसूचनाएं

+0

आप किस सूचना सेवा का उपयोग कर रहे हैं? –

+0

मैं एक पृष्ठभूमि सेवा का उपयोग कर रहा हूं जो हर कुछ दिनों में अधिसूचना भेजता है। – user12345

+0

मेरा मतलब है, क्या आप सरल अधिसूचना या पुश अधिसूचना का उपयोग कर रहे हैं? –

उत्तर

1

पढ़ें तो कृपया इस लेख

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

यहाँ आप इस विषय की अच्छी व्याख्या पढ़ सकते हैं होगा:

Android के लिए Espresso सही और तेजी से परीक्षण स्वचालन ढांचे, है, लेकिन यह एक महत्वपूर्ण है सीमा - आपको टेस्ट संदर्भ के तहत अपने ऐप के अंदर केवल संचालित करने की अनुमति है।

इसका मतलब है कि यह संभव तरह सुविधाओं जैसे अनुप्रयोग के लिए परीक्षण को स्वचालित करने नहीं है:

  • आवेदन पुश नोटिफिकेशन के
  • संपर्क सिंक्रनाइज़ेशन
  • परीक्षण के अंतर्गत अपने अनुप्रयोग किसी अन्य एप्लिकेशन से नेविगेट,

क्योंकि आपको मोबाइल डिवाइस से अन्य ऐप्स से निपटना होगा - NotificationBar, Contacts या People ऐप, आदि

वास्तव में UIAutomator 2.0 की रिलीज होने तक यह संभव नहीं था। एंड्रॉइड डेवलपर्स ब्लॉग पोस्ट में कहा गया है - "... सबसे महत्वपूर्ण बात यह है कि UI Automator अब एंड्रॉइड इंस्ट्रुमेंटेशन पर आधारित है ..."। और क्योंकि हम UIAutomator परीक्षणों के साथ-साथ Espresso Instrumentation test runner का उपयोग कर परीक्षण कर सकते हैं।

इसके अलावा हम गठजोड़ कर सकते हैं UIAutomator Espresso परीक्षण के साथ एक साथ परीक्षण करता है और यह हमें फोन और आवेदन पर वास्तविक शक्ति और नियंत्रण देता है परीक्षण के अंतर्गत।

7

परीक्षण अधिसूचना UIAutomator का उपयोग कर: -

बस नीचे दिए गए कोड के माध्यम से जाना। यह अधिसूचना का परीक्षण करने में आपकी मदद करेगा।

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);` 

build.gradle में UIAutomator निर्भरताओं को जोड़ने के लिए मत भूलना।

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

@ dcr24 द्वारा पोस्ट किया गया मेरे पास अभी तक टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है। प्रेम चौधरी का जवाब बहुत सरल है लेकिन यह ध्यान रखना महत्वपूर्ण है कि यह केवल इस आधार पर काम करता है कि डिवाइस अनलॉक है, अन्यथा device.openNotification() लॉक स्क्रीन के लिए काम नहीं करेगा। –

संबंधित मुद्दे