मैं वर्तमान में एक छोटी पुस्तकालय के लिए यूनिट परीक्षणों का एक कम या कम सेट सेट बनाने की कोशिश कर रहा हूं। चूंकि हम विभिन्न कार्यान्वयनों को अस्तित्व में रखने की अनुमति देना चाहते हैं, हम चाहते हैं कि यह परीक्षण सामान्य (ए) सामान्य हो, ताकि हम विभिन्न कार्यान्वयन और (बी) जितना संभव हो सके पूर्ण परीक्षण करने के लिए इसका पुन: उपयोग कर सकें। (बी) भाग के लिए मैं जानना चाहता हूं कि एनम प्रकारों के परीक्षण के लिए वहां कोई सर्वोत्तम अभ्यास है या नहीं। तो उदाहरण के लिए मेरे पास एक enum है:enum प्रकारों का परीक्षण कैसे करें?
public enum Month {
January,
February,
...
December;
}
यहां मैं यह सुनिश्चित करना चाहता हूं कि सभी enum प्रकार वास्तव में मौजूद हैं। क्या यह भी जरूरी है? वर्तमान में मैं Hamcrests उपयोग कर रहा हूँ assertThat
निम्नलिखित उदाहरण की तरह:
assertThat(Month.January, is(notNullValue()));
एक लापता "जनवरी" enum एक संकलन समय त्रुटि जो एक निर्माण लापता enum प्रकार से ठीक कर सकते हैं में परिणाम होगा।
मैं जावा यहाँ का उपयोग कर रहा हूँ, लेकिन मुझे कोई आपत्ति नहीं है, तो आपका जवाब एक अलग भाषा के लिए है ..
संपादित करें:
mkato और मार्क हीथ के रूप में दोनों ने बताया है परीक्षण enums हो सकता है जरूरी नहीं है क्योंकि संकलक संकलित नहीं करेंगे जब आप एक एनम प्रकार का उपयोग कर रहे हैं जो वहां नहीं है। लेकिन मैं अभी भी उन enums का परीक्षण करना चाहता हूं क्योंकि हम एक अलग टीकेसी की तरह test.jar बनाना चाहते हैं जो विभिन्न कार्यान्वयन पर एक ही परीक्षण चलाएगा। तो मेरा सवाल इस तरह से अधिक था: enum प्रकारों का परीक्षण करने का सबसे अच्छा तरीका क्या है?
इस बारे में सोच करने के बाद थोड़ा और मैं करने के लिए ऊपर Hamcrest बयान बदल दिया है:
assertThat(Month.valueOf("January"), is(notNullValue()));
यह बयान अब एक एनपीई फेंकता है जब जनवरी वहाँ नहीं है (अभी तक)। क्या इस दृष्टिकोण में कुछ गड़बड़ है?
मेरे पास एक enum है जिसमें एक तरीका है जिसे मैं परीक्षण करना चाहता हूं, मैं यूनिट परीक्षण में रूकी हूं और उस विधि के लिए टेस्ट केस लिखने का कोई तरीका नहीं समझ सकता, क्या आप कृपया मुझे एक उदाहरण प्रदान कर सकते हैं या इसे करने में मदद कर सकते हैं । – dirtydexter
यदि "जोर दें (माह। जनवरी, है (नहीं NullValue());" ओपी के प्रश्न में आपके लिए एक उदाहरण पर्याप्त नहीं है, मुझे लगता है कि आप इसे एक अलग प्रश्न के रूप में पूछने से बेहतर हैं और आप जो परीक्षण करने की कोशिश कर रहे हैं उसका एक उदाहरण प्रदान कर रहे हैं। मुझे लगता है जैसे आपको जुनीट के साथ मदद की आवश्यकता हो सकती है। – aberrant80
हाँ सही, बहुत बहुत धन्यवाद। – dirtydexter