两种断言

Two way assertion

我正在做网络自动化测试,例如假设我有两个非常基本的场景:

Test a) step 1: add record to the database step 2: check if website displayed record properly

Test b) step 1: edit record on the website step 2: check if record were properly saved in database

根据记录,假设它是带有一些 "value"

的简单文本字段

所以对于第一种情况,我会使用 Assert equal:

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        
}

所以基本上它们都做同样的事情,但被颠倒了,以便在断言不正确时抛出正确的错误日志,现在如何在单一方法中实现它,这对两种情况都适用,但会显示正确的断言记录值是否不相等?

使用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));
}