2011-12-20 10 views
6

पर भौगोलिक स्थान भेजें हमारे एंड्रॉइड एप्लिकेशन काफी बड़े हो रहे हैं और हम रिग्रेशन को रोकने के लिए हमारे आवेदन के लिए कार्यात्मक परीक्षणों का उपयोग करना चाहते हैं। हम इसे प्राप्त करने के विकल्पों में देख रहे हैं।एंड्रॉइड कार्यात्मक परीक्षण; एम्यूलेटर

हम भौगोलिक स्थानों का उपयोग करते हैं, इसलिए अब हम डीडीएमएस में अक्षांश/लंबे समय तक प्रवेश करके ऐप का परीक्षण करते हैं। अगर हम इसका परीक्षण करना चाहते हैं, तो इन भौगोलिक स्थानों को प्रोग्रामेटिक रूप से सेट करना संभव होना चाहिए।

क्या कोई ढांचा है जिसे हम अपने एंड्रॉइड ऐप के कार्यात्मक परीक्षण के लिए उपयोग कर सकते हैं और इन अपडेट को हमारे एमुलेटर को भी भेज सकते हैं?

उत्तर

4

मुझे एक ही समस्या का सामना करना पड़ रहा है। हालांकि यह समाधान रोबोटियम में नहीं बनाया गया है, तो आप इसे एक उपयोगिता में बनाने में सक्षम होना चाहिए जिसका उपयोग आपके यूनिट परीक्षणों में किया जा सकता है।

Unit Testing Location Service

6

आप ग्रहण में संकलित हैं, तो आप कर सकते हैं नकली अक्षां एंड्रॉयड एमुलेटर में/देशांतर:

  • विंडोज> ओपन परिप्रेक्ष्य> अन्य।
  • चुनें डी डी एम एस
  • खोजें एम्यूलेटर नियंत्रण टैब
  • जब चाहें अक्षांश और देशांतर भेजने के लिए स्थान नियंत्रण का प्रयोग करें।
+0

से इसे समझ सकते हैं तो हम अच्छे से मैन्युअल रूप से सेट करने के लिए पहले से ही डीडीएमएस का उपयोग कर सकते हैं, लेकिन हम प्रोग्राम द्वारा हमारे एप्लिकेशन के शुरू होने के बाद इसे सेट करने में सक्षम होना चाहते हैं। बंदरगाहर के साथ एडीबी कमांड भेजने के लिए यह संभव है, लेकिन क्या कोई स्थान भेजने के लिए कोई एडीबी कमांड है? – jgeerts

+1

ठीक है, आप इसे मैन्युअल रूप से सेट कर सकते हैं: 1º यदि आपने जीपीएस स्थिति से अपडेट किया है, तो टिप्पणी करें। 2º स्थिति सेट करने के लिए एक फ़ंक्शन लिखें, नई श्रेणी बनाएं android.location.location, myclasslocation.setLatitude (अक्षांश) 3º एक संवाद या एक नई गतिविधि में बटन दबाकर फ़ंक्शन लॉन्च करें, आप एक विकल्पमेनू में इरादा डाल सकते हैं। – vgonisanz

+0

यह काम कर सकता है, लेकिन मैं टेस्ट वर्क करने के लिए अपना कोड बदलना नहीं चाहता, क्या एक टेक्स्टफील्ड में टेक्स्ट भेजने की बजाय, म्यूकररुनर/रोबोटियम या एंड्रॉइडनर के भीतर एक समाधान मौजूद है, जिससे एमुलेटर को भौगोलिक स्थान भेजना पड़ता है? – jgeerts

0

आप monkeyrunner का उपयोग करते हैं, तो आप इस सुविधा का उपयोग कर सकते हैं:

def telnet(host, port): 
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    s.settimeout(2) 

    # connect to remote host 
    try : 
     s.connect((host, port)) 
    except : 
     print 'Unable to connect' 
     sys.exit() 

    print 'Connected to remote host' 
    return s 

def geo_fix(port, lat, lng): 
    print "setting gps to " + str(lat) + "," + str(lng) 
    socket = telnet("localhost", port) 
    socket.send("geo fix " + str(lng) + " " + str(lat) + "\n") 
    socket.send("exit\n") 
    socket.close() 

geo_fix(5554, 32.0878802, 34.797246) 

मैं MonkeyDevice से एमुलेटर के बंदरगाह पाने के लिए एक तरह से नहीं मिल सकता है, तो मैं मैन्युअल रूप से बंदरगाह पारित , लेकिन अगर हम डिवाइस ऑब्जेक्ट

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