2016-05-24 6 views
1

Ich versuche TestNG zu lernen und möchte wissen, ob dies möglich ist. Ich habe einen String-Parameter und möchte ihn gegen eine Liste von Werten testen. Zum Beispiel habe ich diese XML:TestNG-Werte in XML

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 

<suite name="Suite"> 
    <test name="test"> 

     <parameter name="str1" value="10"/> 
     <parameter name="str2" value="22"/> 

     <!-- Hypothetical 
     <acceptedValues values="1","2","3",etc.../> 
     --> 

     <classes> 
     <class name="testng.something.com.ClassName" /> 
     </classes> 

    </test> 
</suite> 

Der Java-Code:

@Test 
@Parameters("str1") 
public void testStr1(String str1) 
{ 
    // Compare str1 with the accepted values in the XML 
} 

Grundsätzlich mag ich etwas zu dem XML können, hinzufügen, so kann ich den Parameter mit einer Liste von Werten vergleichen und jeder von ihnen wird es wahr machen.

Antwort

2

Statt dessen ist der alternative und geeignetere Ansatz für diesen Fall using data provider. Zum Beispiel:

@Test(dataProvider = "HypotheticalData") 
    public void test(Integer n) { 
    // ... 
    } 

    @DataProvider(name = "HypotheticalData") 
    public Object[][] createHypotheticalData() { 
    return new Object[][] { 
     new Object[] { new Integer(10) }, 
     new Object[] { new Integer(22) } 
    }; 
    } 
+0

Vielen Dank, das funktioniert super! –