2011-12-08 14 views
15

डार्ट में अभी तक एक समर्पित इकाई-परीक्षण ढांचा नहीं है। इकाई परीक्षणों को लिखने और चलाने का सबसे अच्छा तरीका क्या है?डार्ट में यूनिट-टेस्ट लिखने का सबसे अच्छा तरीका क्या है?

वहाँ डार्ट स्रोत कोड में कुछ बहुत ही निम्न स्तर के उदाहरण (जैसे \ परीक्षण \ corelib \ src \ ListTest.dart) इस तरह, कर रहे हैं:

class ListTest { 

    static testMain() { 
    testList(); 
    testExpandableList(); 
    } 

    static void testList() { ... } 
    static void testExpandableList() { ... } 
} 

main() { 
    ListTest.testMain(); 
} 

डार्ट में परीक्षण लिखने के लिए इस सिफारिश रास्ता नहीं है , या क्या कुछ यूनिट-परीक्षण लाइब्रेरी, जैसे एक्स-यूनिट के साथ इसे आसान बनाने के लिए कोई प्रयास है?

क्या इस तरह से लिखे गए सभी यूनिट-परीक्षणों को चलाने और परिणामों को देखने का कोई आसान तरीका है?

+0

चूंकि सबसे अजीब पैकेज अब उपलब्ध है, क्या आप नीचे एंटनी के स्वीकृत उत्तर को बदल सकते हैं। –

उत्तर

13

डार्ट में यूनिट-परीक्षण अभी भी विकास के तहत बहुत अधिक है। हम (डार्ट लेखकों) वर्तमान में हमारे सभी परीक्षण निष्पादित करने के लिए एक पायथन स्क्रिप्ट (उपकरण/test.py) का उपयोग करते हैं। स्क्रिप्ट पूर्वनिर्धारित निर्देशिकाओं के माध्यम से चलती है, 'टेस्ट' के साथ समाप्त होने वाली फ़ाइलों की तलाश करती है, उन्हें निष्पादित करती है, और उन्हें अपेक्षित परिणामों की तुलना करती है।

कई दिन पहले test.dart (डार्ट के समकक्ष) का पहला संस्करण सबमिट किया गया है। निकट भविष्य में हम अपने सभी परीक्षणों को निष्पादित करने के लिए टूल/test.py से टूल/test.py पर स्विच करेंगे।

यदि आप एक बड़ी परियोजना लिख ​​रहे हैं तो आप हमारे परीक्षण-ढांचे का पुन: उपयोग कर सकते हैं। हम इसे दैनिक आधार पर उपयोग कर रहे हैं और यह काफी स्थिर है। छोटी परियोजनाओं के लिए ढांचे को सीखने में बिताए गए समय प्रयास के लायक नहीं हो सकते हैं। यदि अन्य परीक्षण-ढांचे हैं (या होंगे) तो मैं आश्चर्यचकित नहीं होगा।

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

संपादित करें: क्लाइंट/परीक्षण/unittest/में एक यूनिट-टेस्ट फ्रेमवर्क भी है। इस ढांचे का उपयोग कर परीक्षण के लिए here देखें। इसका लाभ यह भी है कि यह ब्राउज़र में चलता है।

+0

मैं बस इतना जोड़ दूंगा कि स्टैंडअलोन वीएम में और मेंढक/नोड के शीर्ष पर भी चलने का समर्थन करता है। – munificent

+2

यह उत्तर अब थोड़ा सा दिनांक है। अब ट्रंक की नोक में एक अज्ञात पुस्तकालय है। –

5

This post "एडम कोडिंग" (जी + के माध्यम से) आपके यूनिट परीक्षणों के इन-ब्राउजर व्यू के अच्छे स्क्रीनशॉट के साथ डार्ट यूनिट परीक्षण की वर्तमान स्थिति का एक बहुत विस्तृत विवरण देता है। TDD for FizzBuzz in Dart

कोड GitHub पर है:

1

एक दृष्टिकोण, DartUnit, यूट्यूब पर का एक उदाहरण नहीं है।

7

dartlang.orgcurrent state of unit testing in dart के बारे में एक बहुत लंबे लेख है। एपीआई दस्तावेज here पाया जा सकता है।

import 'package:unittest/unittest.dart'; 

void main() { 
    test('QuickSort',() => 
    expect(QuickSort([5, 4, 3, 2, 1]), 
     orderedEquals([1, 2, 3, 4, 5])) 
); 
} 

int _Partition(List array, int left, int right, int pivotIndex) { 
    var pivotValue = array[pivotIndex]; 
    array[pivotIndex] = array[right]; 
    array[right] = pivotValue; 
    var storeIndex = left; 
    for (var i = left; i < right; i++) { 
    if (array[i] < pivotValue) { 
     var tmp = array[i]; 
     array[i] = array[storeIndex]; 
     array[storeIndex] = tmp; 
    } 
    } 
    var tmp = array[storeIndex]; 
    array[storeIndex] = array[right]; 
    array[right] = tmp; 
    return storeIndex; 
} 

void _QuickSort(List array, int left, int right) { 
    if (left < right) { 
    int pivotIndex = left + ((right-left)/2); 
    pivotIndex = _Partition(array, left, right, pivotIndex); 
    _QuickSort(array, left, pivotIndex-1); 
    _QuickSort(array, pivotIndex+1, right); 
    } 
} 

List QuickSort(List array) { 
    _QuickSort(array, 0, array.length-1); 
    return array; 
} 
2

परीक्षण डार्ट पैकेज https://pub.dartlang.org/packages/test

इस पैकेज पहले से unittest जो अब हटा दिया गया है नामित किया गया था का उपयोग करें, लेकिन आप इसके बारे में पुराने लेख पर पहुंच जाएं,। "परीक्षण" पैकेज के लिए नए परीक्षण लिखे जाने चाहिए।

परीक्षण मैन्युअल रूप से (किसी भी अन्य डार्ट प्रोग्राम की तरह) चलाया जा सकता है, या pub (जो एक निर्देशिका के तहत पाए गए व्यक्तिगत परीक्षण या एकाधिक परीक्षण चला सकते हैं) का उपयोग कर सकते हैं।

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

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