两种断言
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));
}
我正在做网络自动化测试,例如假设我有两个非常基本的场景:
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));
}