Selenium 找了很久,没有发现有verify的方法,可是,有个时候要的是确认,而不是直接断言,
当然要在运行结束后能够得到确认的结果,于是写了下面的代码,给大家分享。
import java.util.ArrayList;
import java.util.List;
import org.testng.Assert;
public class Assertion {
public static boolean flag = true;
public static List<Error> errors = new ArrayList<Error>();
public void verifyBegin() {
flag = true; // flag默认为 true
// errors.clear(); // 如果要@dataProvider每次都断言
}
public void verifyEnd() {
Assert.assertTrue(flag, errors.toString()); //如果flag为false、则输出放入堆栈中的 error
}
public void verifyEquals(Object actual, Object expected) {
try {
Assert.assertEquals(actual, expected); // 断言 assert
}
catch (Error e) {
errors.add(e); //如果断言为失败,将error写入堆栈
flag = false; // flag 改为 false
}
}
public void verifyEquals(Object actual, Object expected, String message) {
try {
Assert.assertEquals(actual, expected, message);
}
catch (Error e) {
errors.add(e);
flag = false;
}
}
public void verifyTure(Boolean bl, String message) {
try {
Assert.assertTrue(bl, message);
}
catch (Error e) {
errors.add(e);
flag = false;
}
}
}