我使用DataProvider将Selenium与TestNG一起使用。我正在验证有100个名字的列表。我已将所有这些添加到excel表中,并在A CELL中分隔逗号。我用Java编程如下:
import static org.testng.AssertJUnit.*;
public class example extends Base{
@Test(dataProvider="List")
public void isListofNamesPresent(String names) throws Exception
String list[] = names.split(",");
for(int i=0; i<list.length; i++){
assertTrue(selenium.isTextPresent(list[i]));
Reporter.log("Type of Case:"+ names +" are present");
}
}
上面的代码断言了A CELL中的名字列表(Aaron,James,Jack,Hegin,Henry)。由于它只有一轮数据,如果实际和预期之间有任何误差,它将退出该方法因为assertTrue。如果我给了verifyTrue,那么它应该执行所有列表,即使实际和预期之间存在不匹配。
有谁能告诉我如何使用verifyTrue?我的意思是我需要导入哪个类。我无法扩展任何类,因为我已经扩展了基类。所以任何导入都可以。我尝试过SeleneseTestCase,但没有运气。
提前致谢
答案 0 :(得分:0)
我认为您正在寻找的答案可以通过以下问题解决:SeleneseTestCase is deprecated - how to call verify* methods?
答案 1 :(得分:0)
你可以做的另一种方法是创建自己的verifyTrue()
方法来执行类似这样的操作来捕获断言错误:
public static void verifyTrue(boolean condition, String message) {
try {
Assert.assertTrue(condition, message);
log("Expected value: true" + " Actual value: " + condition + " - PASSED ", true);
} catch (Throwable e) {
log("Expected value: true" + " Actual value: " + condition + " - FAILED " + message, true);
addVerificationFailure(e);
}
}
答案 2 :(得分:0)
您可以导入SeleneseTestBase类以使用verifyTrue(),如下所示:
import com.thoughtworks.selenium.SeleneseTestBase;
也可以使用SeleneseTestCase,但不推荐使用它。所以。最好使用SeleneseTestBase