2013-05-07 5 views
5

मेरे पास एक साधारण घटना और एक साधारण श्रोता के साथ एक साधारण गुवा इवेंटबस है। मेरा सवाल यह है कि घटना पोस्ट होने के बाद श्रोता विधि को लागू करने के लिए परीक्षण पैटर्न क्या है।अमरू इवेंटबस यूनिट परीक्षण

उत्तर

14

मैं सुझाव दूंगा कि इवेंटबस ठीक तरह से काम करता है यह परीक्षण यूएनआईटी परीक्षण नहीं है जिसे आपको लिखना चाहिए। लाइब्रेरी का उपयोग करने के फायदों में से एक (कम से कम आप जिस पर भरोसा करते हैं) यह है कि यूनिट परीक्षण लाइब्रेरी प्रदाता द्वारा लिखे गए हैं। तो कृपया अपना समय बर्बाद न करें कि Google लोगों ने इवेंटबस को सही तरीके से लिखा है। अपने सिस्टम के यूनिट परीक्षण लिखने के लिए EventBus को मजाक किया जाना चाहिए और इसलिए आपका श्रोता नहीं लगाया जाएगा। यह एक संदेश बस का उपयोग करने के फायदों में से एक है, यह अलग-अलग आवेदन चिंताओं को अलग करने की अनुमति देता है जो आसान इकाई परीक्षण की अनुमति देता है।

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

+2

यदि आपका कोड सशर्त रूप से इवेंटबस पर प्रकाशित होता है, तो आपको यह सत्यापित करने में सक्षम होना चाहिए कि आपके परीक्षण के दौरान, इवेंटबस ने वास्तव में वांछित ईवेंट को सही पैरामीटर के साथ निकाल दिया था। –

2

इस प्रकार का परीक्षण आमतौर पर Mockito जैसे मॉकिंग फ्रेमवर्क का उपयोग करके किया जाता है। एक नकली श्रोता बनाएं, इसे ईवेंट बस के साथ पंजीकृत करें, ईवेंट को आग लगाएं, और सत्यापित करें कि श्रोता विधि को बुलाया गया है।

here एक नकली बनाने के तरीके और इसके साथ बातचीत को सत्यापित करने के तरीके पर एक बहुत ही बुनियादी उदाहरण खोजें।

+0

मुझे मॉकिटो पता है, मुझे नहीं पता था कि इस तरह के मामलों में इसका उपयोग किया जा सकता है। मैं इसके बारे मैं सोचूंगा। कई thx। – speedingdeer

+2

यह सुनिश्चित नहीं है कि यह काम करेगा - EventBus एक सदस्यता रद्द करने के लिए पंजीकृत ऑब्जेक्ट स्कैन करता है, जो शायद मॉक ऑब्जेक्ट पर मौजूद नहीं हो सकता है। – PaulJWilliams

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