unit testing - एफ#विकास और इकाई परीक्षण?




unit-testing f# (4)

आप FSUnit पर एक नज़र FSUnit - हालांकि मैंने अभी तक इसका उपयोग नहीं किया है, यह कोशिश करने लायक हो सकता है। F # में उदाहरण (मूल) NUnit के लिए उपयोग करने से निश्चित रूप से बेहतर है।

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

अब तक, एफ # के साथ मेरी प्रक्रिया कुछ कार्यों को लिखने के लिए है, उनके साथ इंटरैक्टिव कंसोल के साथ खेलते हैं जब तक कि मैं "उचित रूप से" सुनिश्चित नहीं करता कि वे काम करते हैं, और ट्विक और गठबंधन करते हैं। यह यूलर प्रोजेक्ट जैसी छोटी-छोटी समस्याओं पर अच्छी तरह से काम करता है, लेकिन मैं इस तरह से कुछ बड़ा निर्माण करने की कल्पना नहीं कर सकता।

लोग एफ # प्रोग्राम के लिए यूनिट परीक्षण और परीक्षण सूट का निर्माण कैसे करते हैं? क्या टीडीडी के बराबर है? किसी भी संकेतक या विचारों की सराहना की जाती है।


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

एफएस चेक कोडप्लेक्स पेज

FsCheck लेखक पृष्ठ


टेस्ट-संचालित डेवलपर्स को एफ # जैसे कार्यात्मक भाषाओं में घर पर सही महसूस करना चाहिए: छोटे कार्यों जो निर्धारक रूप से दोहराने योग्य परिणाम देते हैं, पूरी तरह से यूनिट परीक्षणों को उधार देते हैं। एफ # भाषा में भी क्षमताएं हैं जो लेखन परीक्षणों की सुविधा प्रदान करती हैं। उदाहरण के लिए, ऑब्जेक्ट एक्सप्रेशन ले लो। आप उन कार्यों के लिए बहुत आसानी से नकल लिख सकते हैं जो उनके इनपुट को इंटरफ़ेस प्रकार के रूप में लेते हैं।

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

मैथ्यू Podwysocki कार्यात्मक भाषाओं में इकाई परीक्षण पर एक महान series लिखा था। चाचा बॉब ने यहां एक विचार उत्तेजक लेख भी लिखा था।


मुझे लगता है कि यह एक बहुत ही रोचक सवाल है कि मैंने अपने बारे में बहुत कुछ सोचा है। मेरे विचार अब तक केवल विचार हैं, इसलिए उन्हें उनके लिए ले जाएं।

मुझे लगता है कि एक स्वचालित परीक्षण सूट का सुरक्षा नेट जाने के लिए एक संपत्ति बहुत मूल्यवान है, हालांकि यह सुनिश्चित करना कि इंटरैक्टिव कंसोल हो सकता है, इसलिए मैं हमेशा यूनिट परीक्षण लिखना जारी रखता हूं जैसा मैंने हमेशा किया है।

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

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







tdd