testng parameterized test

, et interessant træk, der er til rådighed i testng, parametrisk test.i de fleste tilfælde, du kommer i en situation, hvor forretningslogikken kræver et enormt varierende antal prøver., parameterized test, tillade udviklere løbe samme prøve igen og igen ved hjælp af forskellige værdier. testng lader dig gå direkte til deres parametre testmetoder på to forskellige måder:, med testng. xml - med dataleverandører, der passerer parametre, testng. xml, med denne teknik, du definerer den simple parametre i, testng.xml, fil og reference disse parametre i kilden filer.lad os få et eksempel for at vise, hvordan til at bruge denne teknik til at passere parametre. skabe test klasse, skabe en java - test gruppe, sige, parameterizedtest1., java,.,,, tilføje testmetode parametertest() til din test klasse.denne metode tager en snor som input parameter.,,, tilføjer den anmærkning, @ parametre ("myname"), til denne metode.parameteren ville blive vedtaget en værdi fra testng.xml, som vi vil se på de næste skridt.,,, skabe en java klasse fil, der hedder parameterizedtest1.java i, c) > testng_workspace,., import org.testng.annotations.parameters; import org.testng.annotations.test; offentlige klasse parameterizedtest1 {@ test @ parametre ("myname") offentlige tomrum parametertest (- myname) (system. println ("parameterized værdi er:" + myname)}}, skabe testng. xml, skabe testng.xml i, c) > testng_workspace, at udføre test (s). <?xml - version = "0" kodning = "utf - 8"?> <!doctype suite system "http://testng.org/testng-1.0.dtd" > < suite navn = "suite1" > < test navn = "test1" > < parameter navn = "myname" værdi = "manisha" /> < klasser > < klassenavn = "parameterizedtest1" /> < /klasser > < /test > < /suite > vi kan også fastlægge parametre på < suite > niveau.vi har vel defineret, myname, både på < suite > og < test > niveauer.i sådanne tilfælde foretages regelmæssigt regler anvendelse.det betyder, at enhver klasse i < test > tag vil se værdien af parametre er defineret i < test >, mens de klasser i resten af testng.xml fil vil se værdien defineret i < suite >. udarbejder test klasse ved hjælp af, javac,., c:. testng_workspace> javac parameterizedtest1.java, løb testng.xml, som vil styre, parametertest metode.testng vil forsøge at finde en parameter, der hedder, myname, først på < test > et, og så, hvis det ikke kan finde det, man søger på < jakkesæt >, der omslutter. c:. testng_workspace> java - cp "c: testng_workspace." org.testng.testng testng.xml verificere output. parameterized værdi: manisha =============================================== suite1 samlede undersøgt: 1, svigt: 0, springer: 0 ===============================================, testng automatisk vil forsøge at ændre den værdi, der er specificeret i testng.xml til typen af din parameter.her er de typer støtte:,, snor, int /heltal, boolean /boolean, byte /byte - /karakter, dobbelt, dobbelt, flydende /flyde, lang /lang, kort /kort, passerer parametre, dataproviders, når du skal videregive komplekse parametre eller parametre, der skal skabes fra java (sammensat af genstande, genstande, læse fra en ejendom fil eller en database, osv.), parametre kan overføres ved hjælp af dataudbyderne.en dataudbyder metoden er forsynet med, @ dataprovider,.denne angivelse er kun én snor attribut: dens navn.hvis navn ikke er leveret, dataudbyderen navn automatisk misligholdelser metoden navn.en dataudbyder returnerer en række genstande. følgende eksempler viser, hvordan man bruger dataleverandører.det første eksempel er @ dataprovider ved hjælp af vektor, snor eller hele tal som parameter, og det andet eksempel drejer sig om @ dataprovider ved hjælp af genstand som parameter, f.eks. 1, @ dataprovider passerer hele tal og boolesk som parameter, skabe java - klasse, skabe en java - klasse, som hedder primenumberchecker.java.denne klasse kontrol, hvis antallet er et primtal.skabe denne klasse i, c) > testng_workspace,., offentlige klasse primenumberchecker {offentlige boolean validere (endelige tal primenumber) (for int (i = 2; jeg < (primenumber /2); jeg + +) (hvis (primenumber% i = = 0) (tilbagevenden falske}} tilbage.}}, skabe test klasse, skabe en java - test gruppe, sige, paramtestwithdataprovider1., java,.,,, definere den metode, primenumbers(), der er defineret som en dataudbyder anvender anmærkning.denne metode er tilbage med en række genstande.,,, tilføjer den testmetode, testprimenumberchecker() til din test klasse.denne metode tager et heltal og boolesk som input parametre.denne metode vil give mening, hvis den parameter, vedtaget et primtal.,,, tilføjer den anmærkning, @ test (dataprovider = "test1"), til denne metode.attributten dataprovider er kortlagt "test1".,,, skabe en java klasse fil, der hedder paramtestwithdataprovider1.java i, c) > testng_workspace,., import org.testng.assert; import org.testng.annotations.beforemethod; import org.testng.annotations.dataprovider; import org.testng.annotations.test; offentlige klasse paramtestwithdataprovider1 (private primenumberchecker primenumberchecker; @ beforemethod offentlige tomrum initialize() {primenumberchecker = nye primenumberchecker();} @ dataprovider (navn = "test1") offentlige statisk objekt [] [...] primenumbers() {tilbage nye formål [] [] {{2, sande} (6, falske}, (19, sande} {22, falske} {23, sande}}} //denne prøve vil løbe 4 gange, siden vi har 5 parametre, der er defineret @ prøve dataprovider = "test1") offentlige tomrum testprimenumberchecker (helt tal inputnumber, boolean expectedresult) (system. println (inputnumber + "+ expectedresult), hævder. assertequals (expectedresult, primenumberchecker. validere (inputnumber)}}, skabe testng. xml, skabe en testng.xml, c) > testng_workspace at udføre test (s). <?xml - version = "0" kodning = "utf - 8"?> <!doctype suite system "http://testng.org/testng-1.0.dtd" > < suite navn = "suite1" > < test navn = "test1" > < klasser > < klassenavn = "paramtestwithdataprovider1" /> < /klasser > < /test > < /suite > udarbejder test klasse ved hjælp af, javac,., c) testng_workspace >. javac paramtestwithdataprovider1.java primenumberchecker.java, løb testng. xml. c:. testng_workspace > java - cp "c:. testng_workspace" org.testng.testng testng.xml, kontrollere produktionen., 2 sande 6 falske 19 sande 22 falske 23 sandt =============================================== suite1 samlede undersøgt: 5, svigt: 0, springer: 0 ===============================================, eksempel 2 her, @ varierervider passerer genstand som parameter, skabe java - klasse, skabe en java - klasse bean.java, som er en simpel genstand med får, der metoder, i, c) > testng_workspace,., offentlige klasse bønne (private snor val; private int i offentlige bønne (string - val, int -) (denne. val = val; dette. jeg = jeg;} offentlige snor getval() {vender val;} offentlige tomrum setval (string - val) (this.val = val;} offentlige int geti() {tilbage i} offentlige tomrum seti (int) {. jeg = jeg;}}, skabe test klasse,,, skabe en java - test gruppe, sige, paramtestwithdataprovider2., java,.,,, definere den metode, primenumbers(), der er defineret som en dataudbyder anvender anmærkning.denne metode vender tilbage til en række formål.,,, tilføjer den testmetode, testmethod() til din test klasse.denne metode tager et objekt bean som parameter.,,, tilføjer den anmærkning, @ test (dataprovider = "test1"), til denne metode.attributten dataprovider er kortlagt "test1".,,, skabe en java klasse fil, der hedder paramtestwithdataprovider2.java i, c) > testng_workspace,., import org.testng.annotations.dataprovider; import org.testng.annotations.test; offentlige klasse paramtestwithdataprovider2 {@ dataprovider (navn = "test1") offentlige statisk objekt [] [...] primenumbers() {tilbage nye ting, -] [] {{nye bønne ("hej jeg er bean, 111)}}} @ test (dataprovider =" test1 ") offentlige tomrum testmethod (bønne mybean) (system. println (mybean. getval() +" + mybean. geti())}}, skabe testng. xml - skabe testng.xml i, c) > testng_workspace, at udføre test (s). <?xml - version = "0" kodning = "utf - 8"?> <!doctype suite system "http://testng.org/testng-1.0.dtd" > < suite navn = "suite1" > < test navn = "test1" > < klasser > < klassenavn = "paramtestwithdataprovider2" /> < /klasser > < /test > < /suite > udarbejder test klasse ved hjælp af, javac,., c) testng_workspace > javac paramtestwithdataprovider2.java bean.java, løb testng. xml. c:. testng_workspace > java - cp "c:. testng_workspace" org.testng.testng testng.xml, kontrollere produktionen.. hej, jeg er bean 111 =============================================== suite1 samlede undersøgt: 1, svigt: 0, springer: 0 ===============================================,



Previous:
Next Page: