2015-12-22 4 views
7

इंटेलिजे आईडीईए 15.0.2 में परीक्षण कवरेज माप के दौरान मैं छोटे गेटर्स और सेटर्स (तुच्छ विधियों) को कैसे अनदेखा कर सकता हूं?IntelliJ IDEA: कोड कवरेज में छोटी विधियों को अनदेखा करें

// should be measure 
public void complex() { 
    fancy(); 
    interesting(); 
    dropDatabase(); 
} 

// should not be measured 
public int getNumber() { 
    return this.number; 
} 

प्रत्येक पंक्ति को मापने से 75% का परिणाम होगा। केवल उपरोक्त विधि को मापने से 100% का परिणाम होगा। और वे 100% कोड परीक्षण के लिए उपयोगी हैं।

मुझे इंटरनेट पर इसके बारे में कुछ भी नहीं मिला है? क्या मैं बुरी आदत में डाइविंग कर रहा हूं?


अद्यतन

इस कोड को भी परीक्षण के लिए योग्य होगा:

// should also be tested as it contains logic 
public Integer getValidationProgress() { 
    if (validationProgress == null) { 
     validationProgress = 0; 
    } 
    return validationProgress; 
} 
+1

कोड कवरेज कोड कवरेज है। या तो आप इसे चलाते हैं या आप नहीं करते हैं। यदि आप कोड का 100% कवर नहीं करते हैं तो कहने की उपयोगीता नहीं है कि आपके पास 100% कवरेज है। – JJF

+2

ट्रिविअल गेटर्स और सेटर्स स्वत: उत्पन्न होते हैं। इसके लिए परीक्षण परीक्षण समय की बर्बादी है। यह भी देखें http://stackoverflow.com/a/6197432/1309035 – michaelbahr

+0

मैं शीर्ष उत्तर पर शीर्ष टिप्पणी के साथ सहमत हूं। मैं भी आरई परीक्षणों से सहमत हूं जैसे कि समय बर्बाद है। बस 100% का मतलब है 100% का मतलब है। महत्वपूर्ण कोड का 100% एक अलग बात है और अधिक महत्वपूर्ण आईएमओ है। – JJF

उत्तर

6

जेटब्रेन्स मुझसे कहा था कि इस वर्तमान संभव नहीं है।

एंड्री Dernov (इंटेलीजे) 6 जनवरी, 22:54

हैलो माइकल,

एक निश्चित विधि की अनदेखी करने के लिए कोई सेटिंग नहीं है।

मैंने इसके लिए issue बनाया है।

0

एक भी सरल उदाहरण:

public abstract class A { 
    public static int add(int x, int y) { 
     return x + y; 
    } 
} 

यहाँ इंटेलीजे के कवरेज ए के एक नहीं परीक्षण निर्माता के बारे में शिकायत मैं पाने के लिए अपने परीक्षण में तरह

new A() {}; 

कुछ बेवकूफ लिखने के लिए होगा यह परीक्षण किया।

final Class<?> clazz = Class.forName("package.name.of.A"); 
final Constructor<?> constructor = clazz.getDeclaredConstructors()[0]; 

constructor.setAccessible(true); 
constructor.newInstance(); 

जो बहुत होशियार नहीं लगती है: यदि मैं एक सहायक वर्ग

public final class A { 
    private A() {} 

    public static int add(int x, int y) { 
     return x + y; 
    } 
} 

के लिए इस दृष्टिकोण का उपयोग मैं प्रतिबिंब के लिए "परीक्षण" खाली कोड का उपयोग करने की जरूरत है।