java - 两种断言

标签 java testing automation assert

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

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/

相关文章:

iphone - 自动化Localizable.strings?

java - 设计应用程序模型API

java - 在spring项目中添加aspect后出现UnsatisfiedDependencyException

Java方法据说返回类的对象但返回子类的对象

java - IntelliJ 不显示私有(private)或公共(public)图标,也就是方法的可见性图标

javascript - WebDriver 操作的工作原理

ruby-on-rails - RSpec not_to 未显示正确的结果

c# - 可以使用 Selenium WebDriver 和 C# 更改 IE 文档模式吗?

R ggplot2 : geom_text error (object not found). .. aes() 冲突?

Java断言自动化测试中没有两个元素是相同的