से पहले निष्पादित किया गया है मैं जूनिट 4 की "parametrized" सुविधा का उपयोग कर रहा हूं और मैंने देखा कि @parameters विधि @beforeclass विधि से पहले निष्पादित किया गया है। यह मेरे लिए एक समस्या पैदा कर रहा है क्योंकि पैरामीटर मैं @parameters के माध्यम से परीक्षण मामलों में जा रहा हूँ @beforeclass विधि में प्रारंभ कोड पर निर्भर करता है। उदाहरण के लिए@parameters विधि @beforeclass विधि
@RunWith(Parameterized.class)
public class TestOtherClass {
String argument;
private static boolean initializeThis;
public TestOtherClass(String parameter) throws Exception {
argument=parameter;
}
@BeforeClass
public static void doSetup() {
System.out.println("Doing setup before class...");
initializeThis=true; // true or false, based on some condition
}
@Test
public void otherTest() {
System.out.println("Other test: " + argument);
}
@Parameters
public static Collection<Object[]> getData(){
System.out.println("Inside parameter");
String addThis;
if(initializeThis)
addThis="adding true";
else
addThis="adding false";
Object[] para1 = new Object[]{"First parameter :: " + addThis};
Object[] para2 = new Object[]{"Second parameter :: " + addThis};
Collection<Object[]> classNames = new ArrayList<Object[]>();
classNames.add(para1);
classNames.add(para2);
return classNames;
}
}
अब, मैं चर "initializeThis" @beforeclass विधि में आरंभ कर रहा हूँ सच है, लेकिन (आश्चर्यजनक) जब मैं परीक्षण का मामला निष्पादित यह
Other test: First parameter :: adding false
Other test: Second parameter :: adding false
की उम्मीद नहीं कुछ है कि प्रिंट करता है।
मेरा प्रश्न है; @parameters से पहले @beforeclass विधि को निष्पादित करने का कोई तरीका है, क्या हम यह जूनिट 4 में कर सकते हैं?
शायद पैरामीटर क्षेत्रों बाद में – Kirby