के भीतर "कॉमा" या "पाइप" का उपयोग करके मैं अपने परीक्षणों को पैरामीट्रिज़ करने के लिए जूनिट पैराम का उपयोग करने की कोशिश कर रहा हूं। लेकिन मेरी मुख्य समस्या यह है कि पैरामीटर विशेष पात्रों, टिल्ड या पाइप के साथ तार हैं।जूनिट पैराम्स
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;
import junitparams.JUnitParamsRunner;
import junitparams.Parameters;
@RunWith(JUnitParamsRunner.class)
public class TheClassTest {
@Rule
public ExpectedException exception = ExpectedException.none();
@Test
@Parameters({"AA~BBB"})
public void shouldTestThemethod(String value) throws Exception {
exception.expect(TheException.class);
TheClass.theMethod(value);
// Throw an exception if value like "A|B" or "A~B",
// ie if value contain a ~ or a |
}
}
टिल्डे के साथ, मुझे कोई समस्या नहीं है। लेकिन पाइप के साथ, मैं एक अपवाद है:
java.lang.IllegalArgumentException: wrong number of arguments
पाइप, अल्पविराम के रूप में, पैरामीटर के लिए एक विभाजक के रूप में प्रयोग किया जाता है।
क्या कोई अलग विभाजक सेट करने का कोई तरीका है? या क्या यह जुनीतपराम की एक सीमा है?
आप का उपयोग [इस वाक्य रचना] के आसपास काम कर सकता था (https://github.com/Pragmatists/JUnitParams/blob/master/src/test/ जावा/जूनिटपरम्स/उपयोग/नमूने_of_Usage_Test.java # L34) –
मैं "\\" के साथ पाइप से बचने का प्रयास भी करूंगा, [यह नमूना] देखें (https://github.com/Pragmatists/JUnitParams/blob/master/src/ परीक्षण/जावा/जूनिटपरम्स/उपयोग/नमूने_of_Usage_Test.java # L114) –
मैंने इस वाक्यविन्यास की कोशिश की, अभी भी काम नहीं करता है। अब मैं जूनिट पैराम्स के बजाय पैरामीटरेट का उपयोग कर रहा हूं। यह काम कर रहा है, लेकिन तर्क सभी जूनिट क्लास के लिए है (इसलिए मुझे एक नई कक्षा बनाना पड़ा)। "\\" काम करता है। लेकिन क्योंकि मेरे पैरामीटर पढ़ने के लिए मुश्किल हैं (पूर्ण | और ~ और अन्य विशेष पात्रों), मैं अपने इनपुट सेट में बहुत से भागने वाले चरित्र को न जोड़ना चाहता था। लेकिन हाँ, यह काम कर रहा है। – GaspardP