assertj +如何识别使用元组时哪个属性失败

时间:2019-02-15 11:33:02

标签: assertj

我正在使用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 :(得分:0)

在您的情况下,您有一个元组列表,该元组与期望的元组不匹配,因为它们的第一个值不同("Dot""DOT Baires Shopping")。元组equals方法比较所有元组值。

应该可以为实际和期望的列表着色,但不能为特定元素着色(这是IDE的东西,而不是AssertJ的东西)。

一些评论:

  • containsAnyOf(expected)与一个元素一起使用与contains(expected)
  • Assertions公开了tuple(...)工厂方法以避免调用new Tuple(...)

希望有帮助