2016-06-08 11 views
6

मैं एक हैमक्रिस्ट मैचर की तलाश कर रहा हूं जो यूनिट टेस्ट विधियों के लिए है जो java.util.Optional प्रकार लौटाते हैं। कुछ ऐसा:क्या java.util.Optional के लिए कोई हैमक्रिस्ट Matcher है?

@Test 
    public void get__Null(){ 

     Optional<Element> element = Element.get(null);  
     assertThat(sasi , isEmptyOptional()); 
    } 

    @Test 
    public void get__GetCode(){ 

     Optional<Element> element = Element.get(MI_CODE);  
     assertThat(sasi , isOptionalThatMatches(allOf(hasproperty("code", MI_CODE), 
                 hasProperty("id", notNullValue()))); 
    } 

क्या मेवेन रिपोजिटरी को फेंकने के लिए कोई कार्यान्वयन उपलब्ध है?

+0

आप क्यों नहीं बस का उपयोग नहीं करते 'equalTo (...)' के साथ शुरू एक स्ट्रिंग है? –

+0

ऑब्जेक्ट का परीक्षण करने के अन्य तरीके हैं। लेकिन कुछ मामलों में matcher हमारे जीवन को आसान बना देगा। उदाहरण के लिए, यह मानने के लिए कि एक ऑब्जेक्ट में एक वैकल्पिक संपत्ति वाला एक बीन होता है जब आप केवल कुछ फ़ील्ड देखना चाहते हैं। या यदि बराबर कुछ विशेष कार्यान्वयन है। – borjab

+0

मैं आपके मामले को काफी अच्छी तरह से नहीं जानता, लेकिन शायद यह पुस्तकालय आपकी मदद कर सकता है: https://github.com/shazam/shazamcrest –

उत्तर

5

वर्तमान में जावा हैमक्रिस्ट 1.6 संस्करण का उपयोग कर रहा है और जावा के पुराने संस्करण का उपयोग करने वाली कई परियोजनाओं के साथ एकीकृत है।

तो जावा 8 से संबंधित सुविधाओं को भविष्य में संस्करणों में जोड़ा जाएगा जो जावा 8 संगत हैं। प्रस्तावित समाधान एक विस्तार पुस्तकालय होना था जो इसका समर्थन करता है, ताकि जो भी जरूरत हो, विस्तार पुस्तकालय का उपयोग कर सके।

मैं Hamcrest Optional का लेखक हूं और अब यह मेवेन सेंट्रल पर उपलब्ध है।

उदाहरण: जांच की जा रही है, तो वैकल्पिक कुछ मूल्य

import static com.github.npathai.hamcrestopt.OptionalMatchers.hasValue; 
import static org.hamcrest.Matchers.startsWith; 

Optional<String> optional = Optional.of("dummy value"); 
assertThat(optional, hasValue(startsWith("dummy"))); 
2

पल मैं निम्नलिखित जानकारी के लिए:

  • वहाँ एक issue है और एक feature प्रस्ताव hamcrest साइट पर othe जावा 8 प्रकार के साथ इसे समर्थन करने के लिए।
  • एक उपयोगकर्ता ने एक बनाया और उसके उदाहरण के रूप में GitHub पर पोस्ट किया। अभी भी मेवेन पर नहीं बल्कि उस पर काम कर रहा है।
संबंधित मुद्दे