2017-06-08 20 views
7

मेरे पास JobService है जो उचित रूप से कार्यान्वित किया गया है और सरल मामलों में ठीक काम करता है लेकिन मैं यह सुनिश्चित करना चाहता हूं कि सभी स्थितियों में सेवा का सही ढंग से परीक्षण किया जाए।मैं अपने जॉब सेवा को इंस्ट्रुमेंटेशन टेस्ट के साथ कैसे परीक्षण करूं?

मैं एक इंस्ट्रुमेंटेशन परीक्षण का मामला उपयोग करने के लिए इतना है कि मैं अपने JobService और मेरे onStartJob/onStopJob कॉल में पूर्ण onCreate के आह्वान को getSystemService(JobScheduler.class).schedule(job) साथ काम का समय निर्धारण से प्रवाह परीक्षण कर सकते हैं करना चाहते हैं।

मेरे JobService शुरूआत AsyncTask रों कभी कभी (जिससे onStartJob में true लौटने) और दूसरी बार ऐसा रिटर्न काम कि पहले से ही किया जाता है के लिए false। मेरे पास jobFinished(mJobParameters, needsReschedule) पर विभिन्न कॉल हैं और मैं यह सुनिश्चित करना चाहता हूं कि वे ठीक से काम करें।

मैं पिछले कुछ दिनों से उपकरण परीक्षण परीक्षण करने की कोशिश कर रहा हूं लेकिन सबसे अच्छा मैं साथ आने में सक्षम हूं एक नौकरी निर्धारित करता है लेकिन नौकरी लंबित राज्य को कभी नहीं छोड़ती है। मैंने यह देखने के लिए इंतजार किया है कि यूआई थ्रेड को मुक्त करने की आवश्यकता है, लेकिन क्या कोई सफलता नहीं मिली है, यह देखने के लिए प्रतीक्षा/पृष्ठभूमि धागे की विभिन्न कॉन्फ़िगरेशन की कोशिश की गई है।

यह भी प्रकट नहीं होता है कि Google ने इस घटक के पूर्ण प्रवाह का सही परीक्षण करने के लिए कुछ भी सामने आया है, यह आश्चर्यजनक है कि वे हर किसी को इसका उपयोग करने के लिए मजबूर कर रहे हैं क्योंकि नए एपीआई जारी किए जाते हैं।

मैंने What tools are available to test JobScheduler? देखा है लेकिन adb के साथ स्वचालित करना मुश्किल है (और मुझे इसका उपयोग करने वाले उत्तरों में दिलचस्पी नहीं है)।

क्या किसी को इंस्ट्रुमेंटेशन परीक्षणों का उपयोग करके जॉबशेड्यूलर के साथ जॉब सेवा का परीक्षण समाप्त करने का कोई तरीका पता है?

+0

यदि यह पर्याप्त ध्यान नहीं दे रहा है, तो यह न भूलें कि आप इसमें एक बाउंटी जोड़ सकते हैं। (हम यहां पदों में अपवॉट के लिए अनुरोधों को हतोत्साहित करते हैं, लेकिन एक खिंचाव पर उन्हें टिप्पणियों में डाल दिया जा सकता है, जहां वे भावी पाठकों के लिए व्याकुलता नहीं हैं)। – halfer

+1

जब मैंने यह संपादन किया, तो सवाल –

+0

के लिए योग्य नहीं था, मैंने इसके बारे में Google के साथ एक सुविधा अनुरोध खोला है: https://issuetracker.google.com/issues/62543492 –

उत्तर

4

Google देवताओं को यहां मेरे प्रश्न का उत्तर देने के लिए बहुत ही उत्तरदायी होने के लिए धन्यवाद: https://issuetracker.google.com/issues/62543492, अब यह स्पष्ट है कि यह कैसे करें!

यह उपकरण परीक्षण उदाहरण के सेट अप के उस भाग को वे प्रदान की चल रहे एप्लिकेशन के रूप में सक्रिय परीक्षण

try { 
     SystemUtil.runShellCommand(getInstrumentation(), "cmd activity set-inactive " 
       + mContext.getPackageName() + " false"); 
    } catch (IOException e) { 
     Log.w("ConstraintTest", "Failed setting inactive false", e); 
    } 

स्थापित कर रही है और ज्यादातर से खोल पर cmd jobscheduler <command> आमंत्रण के माध्यम से काम राज्य के बारे में सीखने में प्रकट होता है the provided InstrumentationTestCase subclass they posted in the bug notes

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