我正在进行Web自动化测试,例如,我有两种非常基本的方案:
测试a)步骤1:将记录添加到数据库步骤 2:检查网站 正确显示记录
测试b)步骤1:在网站上编辑记录步骤 2:检查是否记录 已正确保存在数据库中
通过记录,可以说这是带有一些“值”的简单文本字段
所以对于第一种情况,我将使用断言等于:
private void check1()
{
Assert.assertEquals(valueFromDB, valueOnWebsite)
//many more assertions for more values here
}
但是,对于第二种情况,它将是:
private void check2()
{
Assert.assertEquals(valueOnWebsite, valueFromDB)
//many more assertions for more values here
}
因此,基本上,它们两者都相同,但是被颠倒了,以便在断言不正确的情况下抛出正确的错误日志,现在介绍如何在单个方法中进行设置,这对于两种情况都可以使用,但是如果值不相等?
答案 0 :(得分:1)
使用overload which receives a message
String message = String.format("valueFromDB value: %s, valueOnWebsite value: %s", valueFromDB, valueOnWebsite);
Assert.assertEquals(message, valueFromDB, valueOnWebsite);
如果您要覆盖内置消息,则需要执行自己的实现
if (!valueFromDB.equals(valueOnWebsite)) {
throw new AssertionFailedError(String.format("valueFromDB value: %s, valueOnWebsite value: %s", valueFromDB, valueOnWebsite));
}