आप यूनिट टेस्ट और यूआई कोड कैसे टेस्ट करते हैं?


10

मुझे लेखन इकाई परीक्षण पसंद हैं और सहमत हैं कि वे कोड का परीक्षण करने, प्रतिगमन को रोकने आदि के लिए एक उत्कृष्ट तरीका हैं। हालांकि, मैं खुद को उन्हें लिखने में असमर्थ पाता हूं, क्योंकि मैं दिन-प्रतिदिन काम करने वाले कोड के विशाल बहुमत के रूप में आवेदन करता हूं। वह कोड जो उपयोगकर्ता को UI प्रदर्शित करता है। क्या यूनिट परीक्षण एप्लिकेशन कोड का एक अच्छा तरीका है? यहाँ सबसे अच्छे अभ्यास क्या हैं?

मैं एक विशिष्ट उत्तर जैसे फ्रेमवर्क इत्यादि की तलाश नहीं कर रहा हूं, बल्कि सामान्य रूप से, आप इस समस्या से कैसे निपटेंगे?


"एप्लीकेशन कोड क्या है जो UI प्रदर्शित करता है"? क्या आप MVC में C के बारे में बात कर रहे हैं?
मार्टिन विकमैन

मैं किसी भी तरह के ग्राफिकल इंटरफ़ेस के बारे में बात कर रहा हूँ - जावास्क्रिप्ट / HTML, C ++ के साथ MFC, WinForms, WPF, आदि ...
जस्टिन एथियर

MVVM यूनिट टेस्ट के लिए आसान है। MVVM कमांड पैटर्न
अमीर रज़ाई

@ आमिर - क्या आपके पास कोई संदर्भ या अतिरिक्त जानकारी है?
जस्टिन एथियर

जवाबों:


8

वास्तविक उपयोगकर्ता इंटरफ़ेस का परीक्षण करने के लिए, सेलेनियम अच्छी तरह से काम करता है।

यदि आप वास्तविक इकाई परीक्षण चाहते हैं, तो आपकी रणनीति यथासंभव वास्तविक उपयोगकर्ता इंटरफ़ेस से तर्क को पीछे धकेलना है, आमतौर पर एक ViewModel ऑब्जेक्ट में। फिर आप ViewModel ऑब्जेक्ट के खिलाफ यूनिट टेस्ट लिख सकते हैं।

दूसरे शब्दों में, वास्तविक यूआई में यथासंभव कम तर्क रखें, ताकि इकाई परीक्षण कहीं और हो सके।


SoC के लिए यह अच्छा डिज़ाइन है कि UI में डोमेन / व्यावसायिक तर्क नहीं होना चाहिए। क्लाइंट के बहुत सारे तर्क - अन्तरक्रियाशीलता / मान्यता यूआई में जावास्क्रिप्ट के साथ जा सकते हैं, जो इकाई परीक्षण योग्य है।
स्टुपरयूजर

1

मुझे MSTest के साथ अपने आवेदन का परीक्षण करने और क्विंट के साथ अपनी जावास्क्रिप्ट का परीक्षण करने वाली इकाई के साथ सफलता मिली है और उन परीक्षणों के परिणामों को एक MSTest इकाई परीक्षण के साथ उठा रहा है जो WatiN का उपयोग करता है (मुझे सुझाव दिया गया था सेलेनियम , जिसमें परीक्षण रिकॉर्ड करने की क्षमता भी है, लेकिन सफाई से स्वचालित करने के लिए WatiN बेहतर पाया गया)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.