2012-12-01 20 views
5

मैं जो काफी हद तक गूगल मैप्स एपीआई v3 (की गणना दूरी, नक्शे आदि में मार्करों बनाने) का उपयोग करता AngularJS आवेदन के लिए इकाई परीक्षण लिखने के लिए और मुझे पता है कि मैं किसी भी तरह बनाना चाहिए की जरूरत है या नकली नक्शा कैनवास इसलिए मैं यूनिट टेस्ट फ़ंक्शंस कर सकता हूं जो Google मानचित्र API का उपयोग करते हैं और उस कैनवास पर मार्कर बनाते हैं लेकिन मुझे यकीन नहीं है कि यह कैसे करें और मैं इकाई परीक्षण कैसे करें (अधिमानतः AngularJS के साथ कोई अच्छा ट्यूटोरियल/संसाधन नहीं ढूंढ पाया/जैस्मीन) अनुप्रयोग Google मानचित्र API पर आधारित हैं।AngularJS: गूगल मैप्स एपीआई के आधार पर इकाई परीक्षण आवेदन

किसी भी काम कर रहे उदाहरण - यहां तक ​​कि सबसे सरल एक - इस तरह इकाई परीक्षण की बहुत सराहना की जाएगी।

+3

क्या आपने Google मानचित्र API को इंजेक्ट करने के लिए कोई सेवा बनाई थी? यदि ऐसा है, तो इकाई परीक्षण आसान होगा ... यदि नहीं, तो इकाई परीक्षण बहुत कठिन होगा। –

+0

@ ब्लेश - धन्यवाद ... लेकिन मुझे डर है कि मैं इसका पालन नहीं करता हूं। – keepsea

+1

यदि आपका Google जीवित है या उचित तरीके से व्यवहार करता है तो आपके यूनिट परीक्षण का परीक्षण नहीं करना चाहिए। तो मूल रूप से आप Google का परीक्षण नहीं कर रहे हैं। आप परीक्षण करते हैं कि क्या आपका नियंत्रक, सेवा इत्यादि आवश्यक Google सेवाओं को सही कॉल भेजता है। ऐसा करने के लिए, अपने परीक्षण में आप Google का उपयोग नहीं करते हैं, लेकिन कुछ "नकली" google जो आप बनाते हैं (एक तथाकथित नकली)। एक सेवा जो Google मानचित्र सेवा होने का दावा करती है लेकिन वास्तव में काफी बेवकूफ है और केवल आपके द्वारा परिभाषित परिणाम लौटाती है। आप पाते हैं कि यह कहां जा रहा है? –

उत्तर

7

उपरोक्त आपकी टिप्पणियों से, ऐसा लगता है कि आपको निम्न जानकारी की आवश्यकता है (यदि आप अवहेलना नहीं करते हैं): यह एक बहुत सी व्याख्या है जो मुझे आपको देना होगा यदि मैंने टाइप किया तो उपन्यास की राशि होगी यह सब ऊपर है। इस प्रकार, मैं आपको बहुत सारे लेखों को जोड़ने जा रहा हूं जो आपके लिए प्रत्येक टुकड़ा समझाए जाने से बेहतर काम करेंगे।

कोणीय सब के बारे में dependency injection है। यदि आप कोई यूनिट परीक्षण कर रहे हैं तो निर्भरता इंजेक्शन महत्वपूर्ण है। पूर्णता के लिए के लिए मैं मान लेंगे आप नहीं जानते कि क्या निर्भरता इंजेक्शन और (मुझे माफ कर दो, अगर आप पहले से ही इस जानते हैं) एक त्वरित विवरण प्रदान निर्भरता इंजेक्शन ऐसी है कि किसी भी बाहरी निर्भरता "इंजेक्शन" किया जा सकता है एक के माध्यम से अपने कोड डिजाइन तर्क। एक निर्भरता किसी भी कोड कोड क्या है के ब्लॉक करने के लिए बाहरी होगा। यही कारण है कि कोणीय में आप शायद, अपने नियंत्रकों में $ दायरे में शामिल हैं या करने के लिए है है $ http या $ संसाधन ... उन अपने नियंत्रक में इंजेक्शन किया जा रहा है क्योंकि । यूनिट परीक्षण में, यह आपको उन वस्तुओं को मजाक करने और उन्हें पास करने की अनुमति देता है, ताकि आप परीक्षण परिणामों को नियंत्रित तरीके से देख सकें।

आप अपने नियंत्रक में कुछ बाहरी कोड (गूगल मैप्स एपीआई, फेसबुक एपीआई, आदि) का उपयोग करने के लिए जा रहे हैं, तो आप इंजेक्षन एक service और injecting it into your controller में यह लपेटकर कि कोड करना चाहते हैं।

इसके अलावा, आप वास्तविक मानचित्र टुकड़े के लिए create a directive को डीओएम मैनिपुलेशन (जैसे कि Google मानचित्र एपीआई में नया मानचित्र() द्वारा किया गया है) निर्देश में किया जाना चाहिए। फिर आप निर्देश का परीक्षण करेंगे। परीक्षण निर्देशों पर मार्गदर्शन के लिए, मैं सलाह देता हूं कि Angular's directive tests in their Github repository as examples पर जाएं। असल में आप निर्देशों को संकलित करते हैं, और इसे छेड़छाड़ करने के परिणामों का परीक्षण करते हैं।

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