से अलग परिणाम देता है मुझे पता है कि यह अजीब है, लेकिन यह मेरे पास है।JUnit4 TextUtils.isEmpty() String.isEmpty()
मैं एक Android आवेदन के लिए मेरे तर्क की जांच करने के लिए एक इकाई परीक्षण लिख रहा हूँ। परीक्षण निष्पादन के दौरान, मुझे लगता है कि यह है कि लाइन पर विफल रहता है:
if (!TextUtils.isEmpty(fromFile))
कि if
बयान fromFile है इससे पहले कि ""
(रिक्त स्ट्रिंग) के बराबर है, लेकिन किसी भी तरह यह एक और तर्क यह है कि नहीं करता है के साथ टूट जाता है इस पर से गुजरता है और खाली स्ट्रिंग की उम्मीद नहीं है।
डीबग में डाइविंग मैंने देखा कि fromFile.isEmpty()
सही परिणाम देता है, लेकिन TextUtils.isEmpty(fromFile)
कहता है कि यह खाली नहीं है।
ओपन सोर्स कोड, मैं देखें:
public static boolean isEmpty(@Nullable CharSequence str) {
if (str == null || str.length() == 0)
return true;
else
return false;
}
और String.java:
public boolean isEmpty() {
return value.length == 0;
}
मैं configutation निम्नलिखित है: JDK 1.8.0_77
मैं पूरी से बचने के लिए चाहते हैं स्ट्रिंग.इस लक्षण() को केवल परीक्षण पास करने के लिए ऐप में तर्क दें, क्योंकि मुझे एंड्रॉइड एपीआई 9 से पहले कोड का समर्थन करने की आवश्यकता है, जहां String.isEmpty
उपलब्ध नहीं है, और अल तो TextUtils.isEmpty()
और करें। स्पष्टीकरण और सुझावों के साथ कोई मदद उपयोगी होगी।
क्या किसी ने इसका सामना किया है? मुझे इसे कैसे ठीक करना चाहिए? अग्रिम में धन्यवाद!
लेकिन थाई एक समाधान है? मेरा मतलब है कि इस मामले के लिए आपके पास केवल टेक्स्ट उपयोग हैं, लेकिन यदि आप एंड्रॉइड द्वारा प्रदान किए गए स्पार्सएरे और कुछ अन्य कस्टम उपयोगिता कार्यान्वयन का उपयोग करते हैं तो क्या होगा? – karate
शुद्ध जुनीट परीक्षणों का विचार यह है कि उन्हें पीओजेओ (सादा ओल्ड जावा ऑब्जेक्ट) के खिलाफ उपयोग किया जाना है। 'स्पैसअरेरेस' पुराने जावा नहीं हैं। यदि आपके पास है, तो आप http://robolectric.org/ के साथ जा सकते हैं, जो Google https://developer.android.com/training/testing/fundamentals.html –