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());
}