我正在做网络自动化测试,例如假设我有两个非常基本的场景:
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
根据记录,假设它是带有一些“值”的简单文本字段
所以对于第一种情况,我会使用 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));
}
关于java - 两种断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53153875/