2011-11-14 12 views
25

ठीक है, जैसा कि मैंने अपने previous question के माध्यम से सीखा है, आरडब्ल्यूएच पुस्तक पहले से ही क्विक चेक के लिए पुरानी है। और मैंने जो भी पोस्ट पढ़ी हैं, उसके बावजूद मुझे बताएं कि क्विक चेक का उपयोग करना कितना अविश्वसनीय रूप से सरल है, मुझे कोई भी जगह नहीं मिल सकती है जो मुझे बताती है कि संपत्ति के लिए चलाने के लिए परीक्षणों की संख्या कैसे बदलें।# परीक्षण बढ़ाने के लिए Haskell QuickCheck 2.4 कैसे प्राप्त करें?

आरडब्ल्यूएच का कहना है:

handyCheck limit = check defaultConfig { 
        configMaxTest = limit 
        , configEvery = \_ _ -> "" 
        } 

QuickCheck 2.4 के साथ ऐसा कैसे? सबसे महत्वपूर्ण बात यह है कि, मैंने खुद को कैसे पाया होगा? कृपया मुझे यह न बताएं कि मुझे एपीआई दस्तावेज से इसे समझने में सक्षम होना चाहिए था।

+8

आरडब्ल्यूएच एक पूरी तरह से गलत समय पर बाहर आया था। उदाहरण के लिए: क्यूसी बदल गया, अपवाद बदल गए, गणक लोकप्रिय हो गए, आदि –

उत्तर

46

आप के लिए देख रहे हैं:

quickCheckWith stdArgs { maxSuccess = 5000 } someProp 

मैं कैसे

  1. पता चला मैं API documentation के पास गया।
  2. दूसरी चीज़ जो मैंने देखी, quickCheckArgsmaxSuccess फ़ील्ड के साथ टाइप किया गया था।
  3. मैं सभी फ़ील्ड लिखना नहीं चाहता था, इसलिए मैंने Args के प्रकार की कीमत की तलाश की - stdArgs ढूंढना। (अपने ब्राउज़र खोज फ़ंक्शन का उपयोग करें - आमतौर पर ctrl-f)। ओटीओएच, मैं hoogle का उपयोग कर सकता था।
  4. मुझे अपने Args कहीं भी टाइप करने की आवश्यकता है इसलिए मैंने देखा। अगली पंक्ति quickCheckWith थी - बिंगो! दूसरी ओर, मैं hoogle का उपयोग कर सकता था।

और कैसे आप पता कर सकते

जैसा कि मैंने ऊपर कहा गया है, आप कार्यों का एक बहुत खोजने के लिए hoogle इस्तेमाल किया जा सकता था, यह सोचते हैं आप महसूस Args प्रकार तुम क्या जरूरत के कोर (है हडॉक्स से)।

अन्यथा, आप शायद अन्य पैकेजों को देखने के लिए कम हो गए हैं, जिसका अर्थ है कि आपको यह जानने की जरूरत है कि अन्य पैकेज क्या देखने लायक हैं। क्विक चेक में examples फ़ोल्डर स्पष्ट प्रतीत होता है, लेकिन सभी पैकेजों में ऐसे उदाहरण शामिल नहीं हैं। reverse dependencies का उपयोग करके आप अक्सर एक पैकेज पर देख सकते हैं, लेकिन क्यूसी के लिए बहुत से पैकेजों में स्पष्ट निर्भरता नहीं है।

+6

हाय थॉमस। मैं सराहना कर सकता हूं कि आप एपीआई के माध्यम से पता लगाने में सक्षम थे। लेकिन मुझे अभी तक इस पैकेज में शुरू नहीं किया गया है, और मैं इसमें से अधिकांश के सिर या पूंछ नहीं बना सकता। मनमाने ढंग से खोया। CoArbitrary पर रास्ता खो दिया। जनरल? कोई विचार नहीं कि वह क्या है। दस्तावेज "यादृच्छिक जनरेटर" कहता है। मुझे आशा है आप मेरा मतलब समझ गए। लेकिन एक त्वरित उत्तर देने के लिए धन्यवाद। – Ana

+4

@ एना समझ में आता है कि आप मनमाने ढंग से, CoArbitrary और whatnot पर खो गए हैं। चाल है, ऐसी चीजों से बहुत डरो मत। अधिकांश एपीआई के पास एक आसान हिस्सा होता है जो आपको शुरू करता है, इसलिए जटिल सामग्री को अनदेखा करने और पहले आसान भाग ढूंढने का प्रयास करें। इस मामले में, आप अपने कोड को _check_ करना चाहते हैं, इसलिए उनके नाम में 'चेक' वाले कार्यों के लिए खोजें (केसेलकेस के कारण केस असंवेदनशील), और देखें कि क्या उपयोगी दिखता है। –

2

जो लोग एक बार में सभी परीक्षण चलाने और उनके विन्यास प्रदान करना चाहते हैं के लिए:

return [] 
main = $forAllProperties (quickCheckWithResult stdArgs { maxSuccess = 500 }) 
+0

इस उत्तर के लिए धन्यवाद - क्विक चेक या तो जटिल है या डॉक्यूमेनेशन में कमी है। मैंने ऊपर वर्णित सभी खोजों को किया और stdArgs {maxSize = 500} किया जो नमूने की संख्या को कम कर दिया; मैंने प्रलेखन को गलत तरीके से किया था। – user855443

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