कैसे जोर लगाने के लिए कुछ Hamcrest के साथ अशक्त है?


144

कैसे कि मैंने assertThatकुछ है null?

उदाहरण के लिए

 assertThat(attr.getValue(), is(""));

लेकिन मैं कह रही है कि मैं नहीं हो सकता है कोई त्रुटि मिलती है nullमें is(null)

जवाबों:


256

आप IsNull.nullValue()विधि का उपयोग कर सकते हैं :

import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;

assertThat(attr.getValue(), is(nullValue()));

यह कहता है कि विधि nullValue () परिभाषित नहीं है
user2811419

2
@ user2811419। आपको आयात करने की आवश्यकता है IsNullयह उस कक्षा में एक स्थिर विधि है। बस करो static import, या उपयोग करो IsNull.nullValue()
रोहित जैन

import static org.hamcrest.core.IsNull.nullValue;अपनी कक्षा में जोड़ें ।
रोहित जैन

4
Hamcrest के नए संस्करणों में नेमस्पेस बदल गया है और आपको इसकी आवश्यकता है import static org.hamcrest.CoreMatchers.nullValue
थॉमस 18

30

क्यों नहीं उपयोग assertNull(object)/ assertNotNull(object)?


8
+1 मैं आम तौर पर हैम्सक्रेस्ट कथनों को पसंद करता हूं, लेकिन यह एक ऐसा मामला है जहां जुनिट जोर सिर्फ पठनीय है, आईएमओ।
स्पाकार्की

9
assertThat () बहुत बेहतर लॉगिंग देता है जो अन्य assert * विधियों में से कई है। परीक्षण-कोडिंग मानक है कि मैं इस कारण के लिए अन्य सभी जोर विधियों पर एहसान asTThat () का उपयोग करें।
15

3
AssertThat बनाम assertNul का उपयोग करते समय मुख्य लाभ यह है कि यह एक Englsih बोली जाने वाली वाक्यांश के करीब है, बस इसे जांचने के लिए अपने किसी भी दावे को पढ़ने की कोशिश करें।
बेलगोरोस

एक त्रुटि का उपयोग करना एक अच्छा कारण है एस्केरनॉल / एसेटरन्यूनेल के विपरीत हैमरेस्ट मैचर्स का उपयोग करना।
टायलर मैकमिलन

15

आप चाहें hamcrestतो कर सकते हैं

import static org.hamcrest.Matchers.nullValue;

assertThat(attr.getValue(), is(nullValue()));

में Junitआप कर सकते हैं

import static junit.framework.Assert.assertNull;
assertNull(object);

11

निम्नलिखित का उपयोग करें (Hamcrest से):

assertThat(attr.getValue(), is(nullValue()));

कोटलिन isमें आरक्षित है इसलिए उपयोग करें:

assertThat(attr.getValue(), `is`(nullValue()));

क्या कोई विकल्प है जहाँ हमें भागने की ज़रूरत नहीं है is?
VIN
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.