Exceptions को संभालना: Message Processing
जिस तरह exceptions का इस्तेमाल और उन्हें संभालना कोड लिखने का अहम हिस्सा है, उसी तरह इन exceptions का टेस्ट करना आपके प्रोजेक्ट की टेस्टिंग के लिए जरूरी है.
इस अभ्यास में, आप JUnit की class instance assertion की सिंटैक्स का अभ्यास करेंगे. आपको एक method दिया गया है जो किसी string को uppercase में बदलता है, लेकिन अगर string null हो तो एक custom RuntimeException फेंकता है. आपका काम इसके लिए unit tests लिखना है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Java में Testing परिचय
अभ्यास निर्देश
- success scenario वाले टेस्ट में assert करें कि message uppercase में बदल गया है.
- सही प्रकार का assertion इस्तेमाल करें ताकि यह वेरिफाई हो कि थ्रो हुई exception
RuntimeExceptionclass की instance है. - exception की expected class दर्ज करें.
- exception message को वेरिफाई करने के लिए सही assertion इस्तेमाल करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
public class Main {
public static void main(String[] args) {
launchTestsAndPrint(MessageProcessorTest.class);
}
}
class MessageProcessorTest {
@Test
void processMessage_returnsUppercase() {
String message = "error!";
String expected = "ERROR!";
String actual = MessageProcessor.processMessage(message);
// Assert the message is converted to uppercase
____(expected, actual);
}
@Test
void processMessage_throwsException_whenMessageIsNull() {
String message = null;
Exception expectedException = null;
try {
MessageProcessor.processMessage(message);
} catch (Exception e) {
expectedException = e;
}
// Assert the correct type of exception
____(RuntimeException.class, expectedException);
// Assert the correct exception message
____("Message cannot be null.", expectedException.getMessage());
}
}