एक टेस्ट केस इस वर्णन करने के लिए: नीचे दिए गए उदाहरण देखें
एक vararg लेने विधि घोषणा (जो स्थिर होता है) के साथ जावा कोड:
public class JavaReceiver {
public static String receive(String... x) {
String res = ((x == null) ? "null" : ("an array of size " + x.length));
return "received 'x' is " + res;
}
}
यह जावा कोड (एक जुनीट 4 टेस्ट केस) उपर्युक्त कॉल करता है (हम किसी भी परीक्षण का परीक्षण नहीं कर रहे परीक्षण मामले का उपयोग कर रहे हैं बात है, बस कुछ उत्पादन उत्पन्न करने के लिए):
import org.junit.Test;
public class JavaSender {
@Test
public void sendNothing() {
System.out.println("sendNothing(): " + JavaReceiver.receive());
}
@Test
public void sendNullWithNoCast() {
System.out.println("sendNullWithNoCast(): " + JavaReceiver.receive(null));
}
@Test
public void sendNullWithCastToString() {
System.out.println("sendNullWithCastToString(): " + JavaReceiver.receive((String)null));
}
@Test
public void sendNullWithCastToArray() {
System.out.println("sendNullWithCastToArray(): " + JavaReceiver.receive((String[])null));
}
@Test
public void sendOneValue() {
System.out.println("sendOneValue(): " + JavaReceiver.receive("a"));
}
@Test
public void sendThreeValues() {
System.out.println("sendThreeValues(): " + JavaReceiver.receive("a", "b", "c"));
}
@Test
public void sendArray() {
System.out.println("sendArray(): " + JavaReceiver.receive(new String[]{"a", "b", "c"}));
}
}
एक JUnit परीक्षण पैदावार के रूप में इस चल रहा है:
sendNothing(): received 'x' is an array of size 0
sendNullWithNoCast(): received 'x' is null
sendNullWithCastToString(): received 'x' is an array of size 1
sendNullWithCastToArray(): received 'x' is null
sendOneValue(): received 'x' is an array of size 1
sendThreeValues(): received 'x' is an array of size 3
sendArray(): received 'x' is an array of size 3
इस और अधिक दिलचस्प बनाने के लिए, के ग्रूवी 2.1.2 से फ़ंक्शन को कॉल करें और देखते हैं क्या हो जाता। यह पता चला है कि परिणाम एक जैसे नहीं हैं! हालांकि यह एक बग हो सकता है।
import org.junit.Test
class GroovySender {
@Test
void sendNothing() {
System.out << "sendNothing(): " << JavaReceiver.receive() << "\n"
}
@Test
void sendNullWithNoCast() {
System.out << "sendNullWithNoCast(): " << JavaReceiver.receive(null) << "\n"
}
@Test
void sendNullWithCastToString() {
System.out << "sendNullWithCastToString(): " << JavaReceiver.receive((String)null) << "\n"
}
@Test
void sendNullWithCastToArray() {
System.out << "sendNullWithCastToArray(): " << JavaReceiver.receive((String[])null) << "\n"
}
@Test
void sendOneValue() {
System.out << "sendOneValue(): " + JavaReceiver.receive("a") << "\n"
}
@Test
void sendThreeValues() {
System.out << "sendThreeValues(): " + JavaReceiver.receive("a", "b", "c") << "\n"
}
@Test
void sendArray() {
System.out << "sendArray(): " + JavaReceiver.receive(["a", "b", "c"] as String[]) << "\n"
}
}
इसे जुनीट टेस्ट के रूप में चलाने से निम्नलिखित में उत्पन्न होता है, जावा में बोल्ड में हाइलाइट किए गए अंतर के साथ।
sendNothing(): received 'x' is an array of size 0
sendNullWithNoCast(): received 'x' is null
sendNullWithCastToString(): received 'x' is null
sendNullWithCastToArray(): received 'x' is null
sendOneValue(): received 'x' is an array of size 1
sendThreeValues(): received 'x' is an array of size 3
sendArray(): received 'x' is an array of size 3
दूसरों के लिए सहायक होगा यदि आपने नमूना में 'asList' विधि सूचीबद्ध की थी, और इसका उद्देश्य। –
@ अरुणकुमार 'asList() '' java.util.Arrays' वर्ग से एक स्थिर आयात है। मैंने अभी माना कि यह स्पष्ट था। यद्यपि अब मैं इसके बारे में सोच रहा हूं, शायद मुझे केवल 'Arrays.toString()' का उपयोग करना चाहिए था क्योंकि एक सूची में इसे परिवर्तित करने का एकमात्र कारण यह है कि यह सुंदर प्रिंट करेगा। –