我正在使用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)任何为失败的颜色着色的方法
答案 0 :(得分:0)
在您的情况下,您有一个元组列表,该元组与期望的元组不匹配,因为它们的第一个值不同("Dot"
与"DOT Baires Shopping"
)。元组equals
方法比较所有元组值。
应该可以为实际和期望的列表着色,但不能为特定元素着色(这是IDE的东西,而不是AssertJ的东西)。
一些评论:
containsAnyOf(expected)
与一个元素一起使用与contains(expected)
与Assertions
公开了tuple(...)
工厂方法以避免调用new Tuple(...)
希望有帮助