Writing Unit Tests Java In Hindi
जावा प्रोग्रामिंग लैंग्वेज में, यूनिट टेस्टिंग का अर्थ है, किसी बड़े या स्माल जावा प्रोग्राम सोर्स कोड के एक स्माल मॉड्यूल, या अलग अलग प्रोग्राम कोड के हिस्से या पोरशन को मैन्युअल आर्डर में एनालाइज डिबग और टेस्ट करना, सामान्य रूप से जावा में एक यूजर डिफाइन मेथड या क्लास में यूनिट टेस्टिंग टास्क एक्टिविटीज से प्रोग्राम सोर्स कोड को वेरिफ़ाई करने से यह प्रोग्रामर की उम्मीद के मुताबिक एक्सेक्यूशन को परफॉर्म करता है।

The most widely used unit testing framework in the Java programming with JUnit 5.
A simple example of a simple unit testing method in Java.
यहाँ माना की जावा यूजर के पास जावा प्रोगाम में दो अलग अलग इन्टिजर नंबर वैल्यू को ऐड करने का एक सिंपल एक्साम्प्ल है.
public class Total_value {
public int addition(int p, int q) {
return p + q;
}
public int subtraction(int p, int q) {
return p – q;
}
}
A JUnit 5 test in Java programming can be written like this.
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class Total_valueTest {
Total_value obj = new Total_value();
@Test
public void testAddition() {
int output = obj.addition(7, 9);
assertEquals(16, output);
}
@Test
public void testSubtraction() {
int output = obj.subtraction(11, 3);
assertEquals(8, output);
}
}
Common JUnit assertions used in Java.
जावा इसके यूजर को मल्टीप्ल JUnit यूज़फुल एसर्टेशन मेथड प्रोवाइड करता है, जिनका यूज़ जावा डेवलपर अपनी जरूरत के अनुसार करता है.
assertEquals(9, output);
assertNotEquals(13, output);
assertTrue(isValid);
assertFalse(isExpired);
assertNull(value);
assertNotNull(value);
For a custom program test exception.
@Test
void shouldThrowExceptionForNegativeNumber() {
assertThrows(
IllegalArgumentException.class,
() -> total_value.total_value(-1)
);
}
Testing methods for different scenarios in a Java program.
किसी जावा प्रोग्राम में एक अच्छे यूनिट प्रोग्राम सोर्स कोड टेस्ट में हैप्पी पाथ से ज़्यादा इनफार्मेशन इन्क्लुड होनी चाहिए।
Example of testing methods for different scenarios.
public int division(int p, int q) {
if (q == 0) {
throw new IllegalArgumentException(“Here value cannot division by any zero value”);
}
return p / q;
}
Test:
@Test
void shouldDivision_Integer() {
assertEquals(7, divide_value.division(21, 3));
}
@Test
void shouldThrowExceptionWhenDividingByZero() {
assertThrows(
IllegalArgumentException.class,
() -> divide_value.division(79, 0)
);
}
Think about testing methods for different scenarios.
- नॉर्मल यूजर इनपुट।
- बाउंड्री वैल्यू।
- खाली/नल इनपुट वैल्यू एक्सप्रेशन।
- इनवैलिड इनपुट एक्सप्रेशन।
- कस्टम प्रोग्राम एक्सेप्शन।
- अलग-अलग बिज़नेस सिनेरियो एक्सप्रेशन मेथड।
Arrange–Act–Assert unit testing method.
यह जावा प्रोग्राम सोर्स कोड में यूनिट टेस्ट के लिए एक यूज़फुल स्ट्रक्चर AAA मेथड प्रोवाइड करता है.
@Test
void shouldTotal_valuePrice() {
// Here we define a Arrange method
Order order = new Order(88.0, 99.0);
// Here we define a Act method
double total = order.total_value();
// Here we define a Assert method
assertEquals(112.0, total_value);
}
Explanation of Arrange–Act–Assert unit testing.
- Arrange method — यह यूजर डिफाइन प्रोग्राम के लिए एक टेस्ट का डेटा तैयार करता है।
- Act method — यह यूजर डिफाइन प्रोग्राम सोर्स कोड के लिए टेस्ट किए जा रहे सोर्स कोड को एग्जीक्यूट करता है।
- Assert method — यह यूजर डिफाइन प्रोग्राम सोर्स कोड के लिए एक आउटपुट रिजल्ट को वेरिफाई करता है।
Testing the concept of dependencies with the Mockito framework.
जावा प्रोग्राम में जब कोई यूजर डिफाइन क्लास किसी दूसरे अन्य क्लास कंपोनेंट पर डिपेंड करती है, तो जावा यूजर सामान्य रूप से नहीं चाहते कि आपका यूनिट टेस्ट किसी असली डेटाबेस या एक्सटर्नल सर्विस को कॉल करे।
Example of dependencies with the Mockito framework.
class ClientService {
private final ClientRepository repository;
ClientService(ClientRepository repository) {
this.repository = repository;
}
User findClient(long id) {
return repository.findById(id);
}
}
Mockito dependencies with the framework.
@ExtendWith(MockitoExtension.class)
class ClientServiceTest {
@Mock
private UserRepository repository;
@InjectMocks
private ClientService clientService;
@Test
void shouldFindClient() {
Client client = new Client(109, “Siddhi”);
when(repository.findById(109))
.thenReturn(Client);
User output =clientService.findClient(109);
assertEquals(“Siddhi”, output.getName());
verify(repository).findById(109);
}
}
यहां इस एक्साम्प्ल में, UserRepository को मॉक किया गया है, इस वजह से टेस्ट ClientService पर फोकस करता है।
Java Program Parameterized Test Concept.
जावा डेवलपर को यदि एक ही प्रोग्राम सोर्स कोड टेस्ट को मल्टीप्ल यूजर इनपुट के साथ रन करने ने की ज़रूरत है, तो JUnit 5 जावा टेस्टिंग फ्रेमवर्क पैरामीटराइज़्ड टेस्ट मेथड को कम्पलीट सपोर्ट करता है.
@ParameterizedTest method
@CsvSource({
“7, 9, 3”,
“43, 32, 55”,
“1, 6, 4”
})
void shouldTotalIntegers(int p, int q, int expected) {
assertEquals(expected, Total.addition(p, q));
}
यहाँ इस कॉसेप्ट को फॉलो कर जावा प्रोग्राम में मल्टीप्ल लगभग एक जैसे टेस्ट मेथड क्रिएशन प्रोसेस को अवॉयड किया जा सकता है।
Good unit-testing practices in Java program source code.
- हमेशा अपने सोर्स कोड टेस्ट को स्माल और फोकस्ड बनाए रखें।
- हमेशा अपने सोर्स कोड टेस्ट बिहेवियर को मैनेज करे, जिससे इम्प्लीमेंटेशन डिटेल्स पर फोकस नहीं हो।
- अपने कस्टम यूजर टेस्ट को डिस्क्रिप्टिव नाम प्रोवाइड करे।
- यूनिट टेस्ट मेथड को अरेंज–एक्ट–एसर्ट कांसेप्ट से फॉलो करें।
- अपने हर टेस्ट मेथड को एक-दूसरे से इंडिपेंडेंट मैनेज करे।
- कभी भी सोर्स कोड एग्जीक्यूशन टेस्टिंग ऑर्डर पर डिपेंड न रहे।
- कभी भी यूनिट टेस्ट सोर्स कोड में ओरिजिनल डेटाबेस या एक्सटर्नल API को यूज़ न करे।
- जरूरत पड़ने पर सक्सेस और अनसक्सेस, दोनों टेस्ट सिनेरियो को मैनेज या टेस्ट करें।
- हमेशा अपने प्रोग्राम कस्टम सोर्स कोड को टेस्ट को फिक्स और फ़ास्ट मैनेज करे।
- मॉक यूनिट टेस्ट मेथड का यूज़ तभी करें जब उनसे क्लियर एक मेथड डिफाइन हो।
- अपने कस्टम प्रोग्राम सोर्स कोड बिल्ड/CI प्रोसेस के हिस्से के तौर पर टेस्ट को ऑटोमैटिकली रन करे।
A style for naming a function in a Java program.
इसके बजाय हम इसे यूज़ करे.
@Test
void Sampletest() { }
आप इसे पसंद करें।
@Test
void shouldRejectInvalidEmail() { }
इसके साथ ही.
@Test
void shouldReturnEmptyListWhenUserDoesNotExist() { }
यहाँ इस टेस्ट के नाम से यह साफ़ होना चाहिए कि किस तरह का बिहेवियर होने की उम्मीद है।
Unit Testing Mindset Behavior in Basic Java Programs.
जावा प्रोग्राम में किसी प्रोग्राम सोर्स कोड टेस्टिंग मेथड के बारे में सोचने का एक इजी और सिंपल मेथड है.
यूजर द्वारा इनपुट किया गया कुछ इनपुट मेथड
↓
जब यूजर डिफाइन एक कस्टम मेथड एग्जीक्यूट होता है
↓
इसके बाद यूजर उम्मीद के मुताबिक प्रोग्राम सोर्स कोड बिहेवियर डिफाइन होता है
जावा प्रोग्राम में एक अच्छे यूनिट टेस्ट कांसेप्ट तब स्पेशल आर्डर में परफार्म हो जाते हैं, जब इसमें रीफैक्टरिंग सोर्स कोड मेथड स्मेल करता है. ये टास्क जावा यूजर को एक टेस्टिंग सेफ्टी नेट प्रोवाइड करते हैं. जब जावा यूजर अनजाने में इसके बिहेवियर को मॉडिफाई किये बिना इसके डिज़ाइन को इम्प्रूव करते हैं।

