Je suis nouveau à Selenium, en utilisant le framework testNG. Voici le code que je suis en train de comprendreSélénium - Test: SoftAssert à appeler dans chaque méthode ou à l'intérieur de @afterTest
@Test
public void softAssertionTest() {
try{
softAssert.assertTrue(name.equals("HardAssertionTest"));
softAssert.assertEquals(1, 1,"Error 1");
softAssert.assertEquals("a","b","Error ab");
System.out.println("Line after assertions");
} catch (Throwable t){
System.out.println("+++++++++++");
verificationErrors.append(t);
System.out.println("Verification error - method1"+ verificationErrors);
}
}
@Test
public void softAssertionTest2() {
softAssert.assertTrue(name.equals("HardAssertionTest"));
softAssert.assertEquals(3, 4,"Error 3,4");
softAssert.assertEquals("c","d","Error cd");
System.out.println("Line after assertions method 2");
}
@AfterTest
public void afterTest(){
softAssert.assertAll();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
System.out.println(verificationErrorString);
}
}
Q1) Je l'ai lu est pas une bonne pratique de faire des affirmations dans les méthodes de configuration. Plutôt les faire dans chaque méthode de test. Par conséquent je modifie le code ci-dessous
@Test
public void softAssertionTest() {
try{
softAssert.assertTrue(name.equals("HardAssertionTest"));
softAssert.assertEquals(1, 1,"Error 1");
softAssert.assertEquals("a","b","Error ab");
System.out.println("Line after assertions");
doSoftAssert();
} catch (Throwable t){
System.out.println("+++++++++++");
verificationErrors.append(t);
System.out.println("Verification error - method1"+ verificationErrors);
}
}
@Test
public void softAssertionTest2() {
try{
softAssert.assertTrue(name.equals("HardAssertionTest"));
softAssert.assertEquals(3, 4,"Error 3,4");
softAssert.assertEquals("c","d","Error cd");
System.out.println("Line after assertions method 2");
doSoftAssert();
} catch (Throwable t){
System.out.println("+++++++++++");
verificationErrors.append(t);
System.out.println("Verification error - method2"+ verificationErrors);
}
}
public void doSoftAssert(){
softAssert.assertAll();
/*String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
System.out.println(verificationErrorString);
}*/
}
Quand je lance, je vois appeler softAssert.assertAll()
de softAssertionTest2()
exécute les affirmations contenues dans softAssertionTest1()
ainsi, la duplication qu'affirment. Comment puis-je avoir des affirmations affirmées une seule fois? Q2) Ajoute les erreurs à verificationErrorString
dans le bon sens ou est-il conseillé d'ajouter ces erreurs dans un HashMap
?
Nous vous remercions de votre aide. J'ai bien compris la première partie. Aller à lire sur l'assertion prioritaire. Pourriez-vous s'il vous plaît me donner un exemple? – Jackranda
Jetez un oeil à la classe 'SofAssert' ou' LoggingAssert' de TestNG. Cela devrait vous donner une idée claire. Aussi les pls n'oublient pas d'accepter ma réponse si cela vous a aidé. –
Merci .. va regarder dans ces classes. Il m'a fallu du temps pour comprendre comment accepter les réponses. – Jackranda