2010-03-18 12 views
12

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

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

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

सर्वोत्तम प्रथाओं क्या हैं?

उत्तर

6

ऐसा लगता है कि यह साझा परीक्षणों के लिए एक नौकरी हो सकता है। साझा परीक्षण ऐसे परीक्षण होते हैं जो विभिन्न स्थिरता वस्तुओं द्वारा साझा किए जाते हैं। यानी, एक ही परीक्षण कोड विभिन्न डेटा पर चलाया जाता है। ScalaTest के लिए समर्थन है। अपने पसंदीदा स्टाइल विशेषता के दस्तावेज़ीकरण में "साझा परीक्षण" की खोज करें जो परीक्षणों (स्पीक, वर्डस्पेक, फ़नसुइट, फ़्लैटस्पेक इत्यादि) के रूप में परीक्षणों का प्रतिनिधित्व करती है।

it should behave like emptyList

FlatSpec प्रलेखन

4

जेनिट 4, here के साथ अनुबंध परीक्षण परीक्षण करना आसान है, बेन रेडी द्वारा एक वीडियो।

+0

बढ़िया! क्या यह तकनीक स्केलेटेस्ट के साथ भी काम करती है? – paradigmatic

+0

क्षमा करें, कोई सुराग नहीं :) – abyx

+0

मैंने अभी तक स्केलटेस्ट के साथ प्रयास किया और ऐसा लगता है कि यह काम करता है। धन्यवाद। – paradigmatic

8

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

यदि आप किसी और परीक्षण ढांचे को पेश करने में कोई फर्क नहीं पड़ता है तो एक और दिलचस्प संभावना JDave विशिष्टता कक्षाओं का उपयोग करना होगा।

मैंने इनमें से किसी एक का उपयोग स्केलेटेस्ट या स्कैला लक्षणों और कार्यान्वयन के साथ करने का प्रयास नहीं किया है, लेकिन ऐसा कुछ करना संभव होना चाहिए।

0

स्काला के लिए में Sharing Tests देखें, दृढ़ता से ScalaCheck पर विचार करें: एक उदाहरण FlatSpec के लिए वाक्य रचना है। उन सभी अनुबंधों को स्कैला चेक में एक-पंक्ति विनिर्देशों के रूप में व्यक्त किया जा सकता है। चलाए जाने पर, स्कैला चेक यादृच्छिक रूप से नमूना इनपुट की एक कॉन्फ़िगर करने योग्य संख्या उत्पन्न करेगा, और जांचें कि सभी विनिर्देशों को पकड़ें। यह इकाई परीक्षण बनाने के लिए संभवतः सबसे अर्थपूर्ण घने रास्ते के बारे में है।

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