assertj + как определить, какое свойство не работает при использовании кортежа - PullRequest
0 голосов
/ 15 февраля 2019

Я использую кортеж assertj для объединения двух или трех свойств вместе и проверки комбинации.Теперь у меня проблема с определением, из какого свойства оно не работает.

В настоящее время я использую как показано ниже:

softAssertions.assertThat(resultArrayList)
                              .extracting("title", "address.countryName", "address.state", "address.city")
                              .as("Title, CountryName, State, City at position %s", i)
                              .containsAnyOf(
                                      new Tuple(placeToSearch, expectedCountry, expectedState, expectedCity));

, и я получаю сообщение об ошибке как

[Title, CountryName, State, City at position 0]        
Expecting
      <[("DOT Baires Shopping", "Argentina", "Ciudad Autónoma de Buenos Aires", "Ciudad de Buenos Aires")]>
    to contain at least one of the following elements:
      <[("Dot", "Argentina", "Ciudad Autónoma de Buenos Aires", "Ciudad de Buenos Aires")]>

1) Некоторые предложения по идентификации / маркировке ошибочных данных.2) Любой способ покрасить неудачных

1 Ответ

0 голосов
/ 15 февраля 2019

В вашем случае у вас есть список из одного кортежа, этот кортеж не соответствует ожидаемому кортежу, так как их первое значение отличается ("Dot" против "DOT Baires Shopping").Метод Tuple equals сравнивает все значения кортежа.

Должна быть возможность раскрасить фактический и ожидаемый список, но не конкретные элементы (это IDE, а не AssertJ).

Несколько замечаний:

  • использование containsAnyOf(expected) с одним элементом аналогично использованию contains(expected)
  • Assertions предоставление фабричного метода tuple(...), чтобы избежать вызова new Tuple(...)

Надеюсь, это поможет

...