2012-11-03 18 views
6

यह एक सैनिटी चेक है क्योंकि मुझे यह पता चल रहा है कि यह हमारे कोड में सच है। हमारे कार्यात्मक कोड के विपरीत, राज्य सेटअप, संयोजन संयोजन केस विश्लेषण, और पड़ोसियों/सहयोगियों/श्रोताओं/आदि को मजाक करने/नकल करने के कारण राज्यव्यापी जीयूआई के परीक्षणों में वजन की दुर्भाग्यपूर्ण मात्रा होती है। क्या मैं कुछ भूल रहा हूँ? आपकी प्रतिक्रिया के लिए धन्यवाद।क्या जीयूआई घटकों के मेरे यूनिट परीक्षणों में परीक्षण के तहत कोड की तुलना में कई और लाइनें होनी चाहिए?

नोट्स:

  • परीक्षण JVM में चल रहे हैं, सब कुछ एक POJO है।
  • अब तक हम इकाई आकार को बढ़ाकर कुछ सरलीकरण प्राप्त कर चुके हैं: एक साथ चिपके हुए अधिक टुकड़ों का परीक्षण करना।

नए नोट्स:

  • हम JUnit और Mockito उपयोग कर रहे हैं।
+0

आप – pstanton

+0

का उपयोग कर रहे परीक्षण एपीआई/सूट को शामिल करना चाहते हैं, मैं सामान्य रूप से सोचता हूं, जब तक कि परीक्षण कोड बहुत सरल और कॉम्पैक्ट न हो, यूनिट परीक्षण उनके द्वारा परीक्षण किए गए कोड से बहुत बड़ा होता है। प्रश्न वास्तव में है: किसी भी मूल्य के जीयूआई का प्रति-विजेट यूनिट परीक्षण है? मैं व्यक्तिगत रूप से ऐसा नहीं सोचता, लेकिन अन्य असहमत हो सकते हैं। – biziclop

उत्तर

5
  1. कोड डुप्लिकेशन से बचें। सामान्य सेटअप कोड और क्रियाएं निकाली जानी चाहिए
  2. पदानुक्रम की तलाश करें। एक विशाल परीक्षण परिदृश्य मत लिखें। एक साथ आम लाइनों को समूहित करें और उन्हें अर्थपूर्ण नामित विधि में निकालें। बिल्डिंग बहु-स्तरित परीक्षण परिदृश्य
  3. बेहतर टूल पर विचार करें। cucumber, FEST assertions, स्काला या परीक्षण डीएसएल के रूप में ग्रूवी (भले ही आप उन्हें उत्पादन कोड में उपयोग न करें), mockito ...

कि इसके अलावा, उत्पादन और परीक्षण लाइनों की संख्या के बीच संबंध का कोड है अप्रासंगिक। मैं कोड के बेहद छोटे टुकड़े का आसानी से उदाहरण प्राप्त कर सकता हूं जिसमें इतने सारे किनारे के मामले हैं कि इसे दर्जनों परीक्षणों की आवश्यकता है।

और एक real-life example of SQLite (जोर मेरा):

[...] पुस्तकालय सी कोड का लगभग 81.3 KSLOC के होते हैं। [...] तुलनात्मक रूप से, परियोजना 1124 गुना अधिक परीक्षण कोड और परीक्षण स्क्रिप्ट - 91421.1 केएसएलसीसी है।

यह सही है, यह उत्पादन कोड की प्रत्येक पंक्ति के लिए परीक्षण कोड की लगभग 1100 लाइनें है।

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

  • कोई संबंधित समस्या नहीं^_^