वर्तमान में, मैं "कार्रवाई में जुनीट" पुस्तक पढ़ रहा हूं। इस पुस्तक में मैंने पाया नीचे पाठ:जुनीट: प्रत्येक @ टेस्ट विधि का आह्वान करने से पहले नया उदाहरण। क्या लाभ हैं?
JUnit प्रत्येक @Test विधि लागू करने से पहले परीक्षण वर्ग का एक नया उदाहरण बनाता है। यह परीक्षण विधियों और के बीच आजादी प्रदान करने में सहायता करता है परीक्षण कोड में अनजाने साइड इफेक्ट्स से बचाता है। चूंकि प्रत्येक टेस्ट विधि एक नए टेस्ट क्लास इंस्टेंस पर चलती है, इसलिए हम टेस्ट विधियों में उदाहरण परिवर्तनीय मानों का पुन: उपयोग नहीं कर सकते हैं।
अब मैं इस दृष्टिकोण में ज्यादा बात नहीं देख पा रहे हैं:
उदाहरण के लिए:
public class CalculatorTest {
@Test
public void testAdd_1() {
Calculator calculator = new Calculator();
double result = calculator.add(1, 1);
assertEquals(2, result, 0);
}
@Test
public void testAdd_2() {
Calculator calculator = new Calculator();
double result = calculator.add(2, 2);
assertEquals(4, result, 0);
}
}
परीक्षण वर्ग के लिए CalculatorTest वहाँ कोई लाभ नहीं है।
ठीक है, की सुविधा देता है एक और उदाहरण पर ध्यान देना जाना:
public class OneTest {
static byte count;
public OneTest() {
count++;
}
@Test
public void test1() {
System.out.println(count);
}
@Test
public void test2() {
System.out.println(count);
}
}
परीक्षण वर्ग के लिए OneTest मैं कई परीक्षण तरीकों के लिए एक ही चर गिनती उपयोग करने के लिए एक रास्ता मिल गया ...
तो, कैसे पुस्तक में वर्णित दृष्टिकोण के वास्तविक लाभ देखने के लिए?
यदि आप 'गिनती' फ़ील्ड के बारे में बात कर रहे हैं तो यह एक स्थिर क्षेत्र है। यह कक्षा की एक संपत्ति है और एक विशिष्ट उदाहरण नहीं है। यही कारण है कि आप इसके मूल्य में परिवर्तन देखते हैं। –
@ बाबास्मिथ: आपको अपने उत्तर को अनावृत करना चाहिए (और शायद एक गैर स्थैतिक क्षेत्र के साथ एक उदाहरण दिखाकर थोड़ा और विस्तृत करें)। –
पहला उदाहरण: हमारे पास परीक्षण विधियों के बीच कोई संबंध नहीं है। उस स्थिति में, प्रत्येक परीक्षण विधि को निष्पादित करने के लिए नया टेस्ट क्लास उदाहरण बनाना - कोई समझ नहीं। दूसरा उदाहरण: हम स्थैतिक चर के माध्यम से "अनजाने दुष्प्रभाव" प्राप्त कर सकते हैं। :)) लाभ कहां हैं? – user471011