7.1 @Suite भाष्य

आणि काही अधिक वारंवार वापरलेली भाष्ये. जरी तुम्ही त्यांचा वापर करत नसला तरीही, तुम्हाला त्यांच्यासोबत चाचण्या नक्कीच दिसतील. त्यामुळे तिथं काय लिहिलं आहे, हे किमान सर्वसाधारणपणे समजून घेणे आवश्यक आहे.

चाचण्या गटांमध्ये एकत्र केल्या जाऊ शकतात. यासाठी एक विशेष भाष्य आहे @Suite. उदाहरण:

@Suite
@SuiteDisplayName("JUnit Platform Suite Demo")
@SelectPackages("com.codegym.test")
@IncludeClassNamePatterns(".*Tests")
class SuiteDemo {
}

या प्रकरणात, @Suite भाष्य इतर भाष्यांसह जोडलेले आहे.

  • SuiteDisplayName- लॉगमध्ये चाचणी गटाचे नाव सेट करते;
  • SelectPackages- चाचणी वर्ग कुठे शोधायचे ते पॅकेजेसची सूची सेट करते;
  • IncludeClassNamePatterns- चाचणी वर्गाच्या नावांचा नमुना सेट करते.

अशा अडचणी कशासाठी? कल्पना करा की प्रकल्पाच्या सर्व चाचण्या अंमलात आणल्या गेल्या आहेत, समजा, 50 तास. आणि प्रत्येक कमिट नंतर त्यांची अंमलबजावणी करणे खूप महाग आहे. अशा परिस्थितीत, काही स्वतंत्र चाचणी स्क्रिप्ट तयार करणे आणि अधिक लवचिक पद्धतीने चाचणी सेट करणे उपयुक्त आहे.

७.२ @ऑर्डर भाष्य

आणखी एक सामान्य भाष्य आहे @TestMethodOrder. हे तुम्हाला चाचणी वर्गामध्ये कोणत्या क्रमाने चाचणी पद्धती कॉल केल्या जातात हे निर्दिष्ट करण्यास अनुमती देते. जेव्हा तुम्हाला माहित असेल की मेथड कॉल्सचा एकमेकांवर परिणाम होतो तेव्हा ते खूप उपयुक्त ठरू शकते, परंतु एका विशिष्ट क्रमाने, सर्वकाही जसे पाहिजे तसे कार्य केले पाहिजे. बरेचदा वापरले.

प्रथम, आपण वर्णक्रमानुसार कॉल करण्याच्या पद्धती सेट करू शकता :

@TestMethodOrder(MethodOrderer.MethodName.class)
public class AlphanumericOrderUnitTest {

}

दुसरे म्हणजे, प्रत्येक पद्धतीमध्ये त्याच्या क्रमिक संख्येसह एक विशेष भाष्य असू शकते.

@TestMethodOrder(OrderAnnotation.class)
public class OrderAnnotationUnitTest {

    @Test
    @Order(1)
    public void firstTest() {
    }

    @Test
    @Order(2)
    public void secondTest() {
    }
}

किंवा एक वेगळा वर्ग तयार करा जो चाचण्या ज्या क्रमाने कॉल केला जाईल ते निर्दिष्ट करेल:

@TestMethodOrder(CustomOrder.class)
public class CustomOrderUnitTest {

}

//sort method names alphabetically, but ignoring case
public class CustomOrder implements MethodOrderer {
    public void orderMethods(MethodOrdererContext context) {
        context.getMethodDescriptors().sort(
        (MethodDescriptor m1, MethodDescriptor m2)->
           m1.getMethod().getName().compareToIgnoreCase(m2.getMethod().getName()));
    }
}

7.3 @DisplayName भाष्य

शेवटी, प्रत्येक चाचणीला एक नाव दिले जाऊ शकते. भरपूर चाचण्या असल्यास आणि तुम्ही चाचण्यांचे विशेष परिदृश्य (सबसेट) तयार केल्यास ते सोयीचे होऊ शकते. यासाठी एक विशेष भाष्य आहे @DisplayName.

उदाहरण:

@DisplayName("Friendly name for the test")
public class DisplayNameCustomTest {

    @Test
    @DisplayName("Input Validation")
    void inputData() {
    }

    @DisplayName("Checking critical situations")
    @Test
    void criticalCases() {
    }
}

चाचण्यांचा क्रम सेट करण्याच्या बाबतीत, येथे तुम्ही एक विशेष पद्धत तयार करू शकता जी चाचणी आणि चाचणी पद्धतींची नावे तयार करेल. उदाहरण:

@DisplayNameGeneration(DisplayNameGeneratorUnitTest.ReplaceCamelCase.class)
class DisplayNameGeneratorUnitTest {

    @Test
    void camelCaseName() {
    }

    static class ReplaceCamelCase extends DisplayNameGenerator.Standard {
        @Override
        public String generateDisplayNameForClass(Class testClass) {
            return super.generateDisplayNameForClass(testClass).toUpperCase();
        }
 }
}

बघा किती सोपं आहे :)