मैंने कुछ भी गोपनीय खुलासा किए बिना इसे चित्रित करने के लिए एक नकली उदाहरण लिखा था। यह एक "डमी" उदाहरण है जो कुछ भी नहीं करता है, लेकिन परीक्षण प्रारंभकर्ता में समस्या होती है।मैं एक varargs कन्स्ट्रक्टर के साथ एक जुनीट पैरामीटरेटेड धावक का उपयोग कैसे करूं?
@RunWith(Parameterized.class)
public class ExampleParamTest
{
int ordinal;
List<String> strings;
public ExampleParamTest(int ordinal, String... strings)
{
this.ordinal = ordinal;
if (strings.length == 0)
{
this.strings = null;
}
else
{
this.strings = Arrays.asList(strings);
}
}
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{0, "hello", "goodbye"},
{1, "farewell"}
});
}
@Test
public void doTest() {
Assert.assertTrue(true);
}
}
मूल रूप से मैं एक परीक्षण निर्माता जो एक स्थानीय सूची चर के लिए कई तर्क को स्वीकार करता है और मैं एक सरणी initialiser के माध्यम से इस को भरने के लिए चाहते हैं। परीक्षण विधि स्थानीय सूची चर को सही तरीके से संभाल लेगी - मैंने परीक्षण को सरल बनाने के लिए इस तर्क को हटा दिया है।
जब मैं इसे लिखता हूं, तो मेरे आईडीई में सिंटैक्स के बारे में कोई शिकायत नहीं होती है और टेस्ट क्लास किसी भी संकलन त्रुटियों के बिना बनाता है। लेकिन जब मैं इसे चलाने के लिए, मैं:
doTest[0]:
java.lang.IllegalArgumentException: wrong number of arguments
at java.lang.reflect.Constructor.newInstance(Unknown Source)
doTest[1]:
java.lang.IllegalArgumentException: argument type mismatch
at java.lang.reflect.Constructor.newInstance(Unknown Source)
वास्तव में क्या गलत यहाँ चला गया है, और कैसे मैं सही ढंग से इस पद्धति का उपयोग करते हैं?
क्या करना है और यह किस डेटा में है? – Jes
इस उदाहरण में, डूटेस्ट सिर्फ एक डमी टेस्ट है जो इस परीक्षण को ज्यूनिट में निष्पादित करने की अनुमति देता है। समस्या परीक्षण कोड में नहीं है, जैसा कि आप देखेंगे कि जब आप इस परीक्षण को चलाने के लिए प्रयास करते हैं तो यह खड़ा होगा; इस तथ्य के बावजूद कि इसमें लगभग खाली परीक्षण निकाय है, यह अभी भी उपरोक्त प्रारंभिक त्रुटि के कारण चलाने में विफल रहता है। – Kidburla
मैंने स्टैकट्रैक का एक हिस्सा जोड़ा जो मुझे लगता है कि जब मैं यह जांचने के लिए अपना परीक्षण चलाता हूं कि त्रुटि तब हो रही है जब varargs कन्स्ट्रक्टर का आह्वान किया जाता है। यदि आप जो देख रहे हैं उससे अलग है, तो इसे बदलने या इसे वापस करने के लिए स्वतंत्र महसूस करें। –