Двухстороннее утверждение - PullRequest
0 голосов
/ 05 ноября 2018

Я делаю тестирование веб-автоматизации, например, скажем, у меня есть два очень простых сценария:

Тест а) шаг 1: добавить запись в шаг базы данных 2: проверьте, если веб-сайт правильно отображается запись

Тест б) шаг 1: редактировать запись на сайте шаг 2: проверить, если запись были правильно сохранены в базе данных

По записи, скажем, это было простое текстовое поле с некоторым "значением"

Так что для первого сценария я бы использовал Assert равный:

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        
}

Таким образом, в основном они оба делают одно и то же, но инвертированы, чтобы создать правильный журнал ошибок, если утверждение было неверным, теперь как сделать это одним методом, который может работать в обоих случаях, НО будет отображать правильный журнал подтверждений, если значения были не равны?

1 Ответ

0 голосов
/ 05 ноября 2018

Используйте перегрузку , которая получает сообщение

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));
}
...