JUnit 5 TestInfoमें JUnit 4 से TestName नियम के लिए ड्रॉप-इन प्रतिस्थापन के रूप में कार्य करता है।
प्रलेखन से:
TestInfo का उपयोग वर्तमान परीक्षण या कंटेनर के बारे में जानकारी को @Test, @RepeatedTest, @ParameterizedTest, @TestFactory, @BeforeEach, @AfterEach, @BefforeAll, और @AAAAll विधियों में इंजेक्ट करने के लिए किया जाता है।
वर्तमान निष्पादित परीक्षण की विधि का नाम प्राप्त करने के लिए, आपके पास दो विकल्प हैं: String TestInfo.getDisplayName()और
Method TestInfo.getTestMethod()।
केवल वर्तमान परीक्षण विधि का नाम पुनर्प्राप्त करने के TestInfo.getDisplayName()लिए पर्याप्त नहीं हो सकता है क्योंकि परीक्षण विधि डिफ़ॉल्ट प्रदर्शन नाम है methodName(TypeArg1, TypeArg2, ... TypeArg3)। एक अच्छे विचार के लिए
डुप्लिकेटिंग विधि के नाम @DisplayName("..")आवश्यक नहीं हैं।
विकल्प के रूप में आप TestInfo.getTestMethod()एक Optional<Method>वस्तु लौटा सकते हैं
।
यदि परीक्षण विधि के अंदर पुनर्प्राप्ति विधि का उपयोग किया जाता है, तो आपको Optionalलिपटे मूल्य का परीक्षण करने की भी आवश्यकता नहीं है ।
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.TestInfo;
import org.junit.jupiter.api.Test;
@Test
void doThat(TestInfo testInfo) throws Exception {
Assertions.assertEquals("doThat(TestInfo)",testInfo.getDisplayName());
Assertions.assertEquals("doThat",testInfo.getTestMethod().get().getName());
}