2011-11-23 21 views
5

मैं एनीमेशन के साथ गतिविधि के लिए एक यूनिट परीक्षण लिख रहा हूं। एनीमेशन अनंत अवधि (स्प्लैश स्क्रीन) के साथ स्पिनर को खींचने योग्य सरल रोटेशन है।गतिविधि इकाई होने पर एंड्रॉइड यूनिट-परीक्षण

जब मैं यूनिट परीक्षण शुरू करता हूं, तो प्रत्येक परीक्षण एनीमेशन समाप्त होने तक प्रतीक्षा करता है, इसलिए वे infinte अटक जाते हैं, जब मैं 1 से अवधि निर्धारित करता हूं तो यह सभी पास होता है, क्योंकि एनीमेशन जल्दी समाप्त होता है।

मैं इसे कैसे ओवरराइड कर सकता हूं, इसलिए परीक्षण एनीमेशन समाप्त होने की प्रतीक्षा नहीं करते हैं?

उत्तर

1

मुझे लगता है कि आप एनीमेशन के अलावा व्यवहार का परीक्षण करना चाहते हैं।

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

आपको जिस समस्या का सामना करना पड़ा वह एक विशेष मामला है जब आप अपना कोड सीधे ढांचे के विस्तार बिंदु में डालते हैं: आपका कोड तब ढांचे के साथ मिलकर बन जाता है और आप कुछ ऐसा चलने लगते हैं जिसकी आपको परवाह नहीं है इस भाग को चलाने के लिए कि आप परवाह करें। तो ऐसा मत करो। अपने कोड को कक्षाओं में रखें जो ढांचे पर निर्भर नहीं हैं, फिर अपने कोड में एंड्रॉइड कनेक्ट करने के लिए फ्रेमवर्क एक्सटेंशन पॉइंट (इस मामले में गतिविधि) का उपयोग करें। गतिविधि जानता है कि आपका कोड मौजूद है; आपका कोड एंड्रॉइड की खुशी से अनजान है। अब आपकी एनीमेशन जैसी चीजें रास्ते में नहीं जा सकती हैं।

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