खोज…


वाक्य - विन्यास

  • @FixMethodOrder // डिफ़ॉल्ट विधि सॉर्टर का उपयोग करके परीक्षण चलाता है
  • @FixMethodOrder (MethodSorters) // MethodSorters Enum के साथ जुड़े MethodSorter का उपयोग करके परीक्षण चलाता है।

डिफ़ॉल्ट आदेश

एनोटेशन का उपयोग करें - @FixMethodOrder(MethodSorters.DEFAULT) । यह एक नियतात्मक और कुछ हद तक अनुमानित आदेश में कक्षा के भीतर सभी परीक्षण चलाता है। कार्यान्वयन में विधि के नामों को शामिल किया गया है और उनकी तुलना की गई है। एक टाई के परिदृश्य में, यह लेक्सोग्राफिक ऑर्डर द्वारा सॉर्ट करता है।

ज्यूनिट जीथब से लिया गया कोड सेगमेंट नीचे - मेथड्स पोर्टर.जवा

public int compare(Method m1, Method m2) {
    int i1 = m1.getName().hashCode();
    int i2 = m2.getName().hashCode();
    if(i1 != i2) {
        return i1 < i2 ? -1 : 1;
    }
    return NAME_ASCENDING.compare(m1,m2);
}

उदाहरण

@FixMethodOrder(MethodSorters.DEFAULT)
public class OrderedTest {
    @Test
    public void testA() {}

    @Test
    public void testB() {}

    @Test
    public void testC() {}
}

मान लीजिए कि testA , testB और testC लिए हैश क्रमशः 3, 2 और 1 हैं। फिर निष्पादन आदेश है

  1. testC
  2. testB
  3. टेस्टा

मान लीजिए कि सभी परीक्षणों के लिए हैश एक ही है। चूंकि सभी हैश समान होते हैं, इसलिए निष्पादन आदेश लेक्सोग्राफिक ऑर्डर पर आधारित होता है। निष्पादन आदेश है

  1. टेस्टा
  2. testB
  3. testC

लेजिकोग्राफिक ऑर्डर

विधि सॉर्टर MethodSorters.NAME_ASCENDING साथ एनोटेशन @FixMethodOrder उपयोग करें। यह एक निर्धारक और पूर्वानुमेय क्रम में कक्षा के भीतर सभी परीक्षण चलाएगा। कार्यान्वयन विधियों के नामों की तुलना करता है और एक टाई के मामले में, यह विधियों की ' toString() तुलना करता है।

ज्यूनिट जीथब से लिया गया कोड सेगमेंट नीचे - मेथड्स पोर्टर.जवा

public int compare(Method m1, Method m2) {
    final int comparison = m1.getName().compareTo(m2.getName());
    if(comparison != 0) {
        return comparison;
    }
    return m1.toString().compareTo(m2.toString());
}

उदाहरण

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class OrderedTest {
    @Test
    public void testA() {}

    @Test
    public void testB() {}

    @Test
    public void testC() {}
}

निष्पादन आदेश है

  1. टेस्टा
  2. testB
  3. testC


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow