2011-08-07 14 views
5

मैं पिछले कुछ हफ्तों में बीडीडी का उपयोग करने के लिए सर्वोत्तम तरीके खोजने का प्रयास कर रहा हूं जो एचटीएमएल 5 कैनवास तत्व पर निर्भर है, और इसके साथ उपयोगकर्ता इंटरैक्शन है।एकीकरण कैनवास का परीक्षण

मैं अपने आवेदन के हर हिस्से में spec और एकीकरण परीक्षण के लिए जैस्मीन और ककड़ी का उपयोग कर रहा हूं, लेकिन किसी भी प्रयास को मुझे कैनवास का परीक्षण करने के लिए एक प्रयास करना पड़ा है ... असफल। मैंने एक jQuery प्लगइन लिखा है जो कैनवास के साथ बातचीत को संभालने के साथ-साथ इसे प्रारंभ करता है।

मैं एकता परीक्षण करने के लिए कैनवास पर वास्तविक ड्राइंग चाहता था, यकीन है कि जब आप की तरह

$("canvas").draw("lineTo", 10, 10) 

कुछ फोन वहाँ वास्तव में अंक (10,10) पर कैनवास तत्व पर बनाया एक पंक्ति है कि बना रही है। यह बदले में साबित हुआ है, मैंने किसी भी पिक्सेल पर प्रासंगिक विधि getImageData() का उपयोग करने का प्रयास किया है। इससे मुझे एक छेद में ले जाया गया है, इससे कोई फर्क नहीं पड़ता कि मैं कैनवास से कैसे पूछता हूं मुझे ब्लैक पारदर्शी पिक्सेल का प्रतिनिधित्व करने वाला पिक्सेल डेटा मिलता है, जो एमडीसी द्वारा कहता है कि मैं संदर्भ से बाहर कैनवास से पूछताछ कर रहा हूं।

यह मुझे लगता है कि आरओआर के साथ जैस्मीन मणि के साथ एक मुद्दा है। अगर मैं उस मुद्दे को हल कर सकता हूं तो मैं सुनहरा होगा लेकिन यह एकमात्र समाधान नहीं है जिसे मैं स्वीकार करना चाहता हूं। मैं वास्तव में कैनवास परीक्षण को एक प्रभावी तरीके से सोचने में मदद करना चाहता हूं भले ही मैं वास्तव में पिक्सेल डेटा की जांच नहीं कर रहा हूं।

आपकी मदद के लिए धन्यवाद कोई भी, यह वास्तव में मुझे एक ब्लॉक में चलाता है।

उत्तर

3

मैंने एक उपकरण लिखा है, जेएस-इमेजडिफ, जो कैनवास परीक्षण के लिए जैस्मीन के साथ एकीकृत करता है। आप यहां एक उदाहरण देख सकते हैं: unit testing canvas with javascript imagediff and jasmine। अगर यह उपयोगी है तो मुझे बताएं।

यह diff करने के लिए getImageData का उपयोग करता है, हालांकि। क्या आपको उस कॉल के साथ विशिष्ट त्रुटियां मिल रही हैं? या क्या आपके पास एमडीसी पेज का एक लिंक है जिसका आप जिक्र कर रहे हैं?

+0

क्या शांत मिलान सेट सबसे कठिन उत्पादन किया जाएगा आप तो मेरे मामले में – austinbv

+0

के खिलाफ परीक्षण करने के लिए कैनवास से क्या चाहते हैं, मैं प्रतिगमन परीक्षण के लिए इस का उपयोग, बल्कि BDD से:

यहाँ कुछ उदाहरण देखें। मैं विकास संस्करण के खिलाफ एक परियोजना के एक स्थिर संस्करण का परीक्षण। बीडीडी में इसका उपयोग करने के लिए, कोई मैन्युअल रूप से कैनवास पर ड्राइंग करके और spec'd कैनवास के लिए एक विधि लिखकर छोटे परीक्षण बना सकता है। एकमात्र अन्य विकल्प जिसे मैं जानता हूं वह एक नकली कैनवास और चमेली जासूसों का उपयोग करना है। मैं तर्क दूंगा कि यह देखने के लिए और अधिक सहज है कि आपका परीक्षण नकली कैनवास संदर्भ पर कुछ विधियों को लागू करने की अपेक्षा करता है। – cesutherland

+0

हाँ मैं जासूस एटीएम का उपयोग कर रहा हूँ – austinbv

0

आप इसके लिए नाइटवॉचज का उपयोग कर सकते हैं ... http://nightwatchjs.org/ इसमें डीओएम तत्वों के साथ बातचीत करने के लिए एक एपीआई है, लेकिन यह भी विस्तार योग्य है। मैंने कुछ उदाहरण कस्टम कमांड और दावे लिखे हैं जिन्हें आप एंड-टू-एंड टेस्ट कैनवास आधारित फ़ेज़र गेम में उपयोग कर सकते हैं, लेकिन आप देख सकते हैं कि यह कैसा चल रहा है और कैनवास ड्राइंग एपीआई को कॉल निष्पादित करने वाले अपने स्वयं के परीक्षण बनाएं। https://github.com/hayesmaker/phase-2-e

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