के लिए जैको कवरेज मैं पुस्तकालय के लिए 100% कोड कवरेज प्राप्त करने के लिए काम कर रहा हूं, जिस पर मैं काम कर रहा हूं और मुझे लगता है कि स्विच स्टेटमेंट और कवरेज के साथ कुछ समस्याएं हैं जिन्हें मैं समझ नहीं पा रहा हूं।स्विच स्टेटमेंट
मैं वर्तमान में जैकोको 0.7.2 का उपयोग कर रहा हूं क्योंकि हर नया संस्करण Robolectrics के साथ तोड़ने लगता है।
मैं एक साधारण स्विच बयान का परीक्षण:
public enum Type {
NONE, LEGACY, AKS
}
private static Class<?> getCipherClass(Type type) {
switch (type) {
case LEGACY:
return CipherWrapperLegacy.class;
case AKS:
return CipherWrapperAks.class;
default:
return null;
}
}
परीक्षण मैंने लिखा निम्नलिखित जांच में शामिल है (मैं के रूप में विधि निजी है प्रतिबिंब का उपयोग करना):
final CipherWrapper instance = CipherWrapper.createInstance(mockContext, CipherWrapper.Type.LEGACY, ALIAS);
assertNotNull(instance);
Method getCipherMethod = TestUtils.makeMethodAccessible(CipherWrapper.class, "getCipherClass", CipherWrapper.Type.class);
assertNull(getCipherMethod.invoke(instance, CipherWrapper.Type.NONE));
assertEquals(CipherWrapperAks.class, getCipherMethod.invoke(instance, CipherWrapper.Type.AKS));
assertEquals(CipherWrapperLegacy.class, getCipherMethod.invoke(instance, CipherWrapper.Type.LEGACY));
परिणाम नहीं है मेरी अपेक्षा है
छवि थोड़ा उलझन में है क्योंकि पीले रंग की रेखा से पता चलता है कि कुछ गायब है। हरा आइकन मुझे बताता है कि 3 में से 3 शाखाएं शामिल हैं।
मैंने case NONE
के साथ स्विच केस का विस्तार करने के लिए भी परीक्षण किया और इसके माध्यम से गिरावट आई लेकिन यह कुछ भी नहीं बदला।
एकमात्र चीज जो मैं कर सकता हूं स्विच के साथ/अन्य के साथ प्रतिस्थापित करना है और फिर मुझे 100% कवरेज मिलता है।
वर्तमान में मैं 98% कवरेज है, लेकिन मैं कुछ भी नहीं सिंहावलोकन के आधार पर चूक जाता है:
जब आप 'शून्य' में जाते हैं तो आप मामले की जांच नहीं कर रहे हैं, एक चीज के लिए ... –
एक टेस्ट केस गायब है, जो 'टाइप' के लिए शून्य मान में गुज़र रहा है, जिसके परिणामस्वरूप' NullPointerException'। (ईमानदारी से, मैं प्रवेश करने से पहले खिंचाव करना बंद कर देता हूं, और जॉन्सकेट एक ही बिंदु के साथ छेड़छाड़ करता है ...) –
एचएम ... सच है, लेकिन इसे कहीं शाखा के रूप में क्यों नहीं बताया गया है? अवलोकन से पता चलता है कि मुझे कोई जटिलता याद नहीं आती है, जो सामान्य रूप से मामला है यदि मुझे शून्य पथ याद आती है ... वैसे भी इसका परीक्षण होगा और परिणाम – WarrenFaith