我正在尝试验证提取列表中的第一项。然而 AssertJList从 中返回一个而不是预期的对象.first()。
给出以下示例
public class AssertJTests
{
@Test
@DisplayName("Region Asia should only have one Country, Malaysia")
public void assertRegion()
{
Region asia = new Region()
.setName("Asia")
.setCountries(Lists.newArrayList("Malaysia"));
Consumer<Region> regionRequirement = region ->
assertThat(region)
.extracting(Region::getName)
.containsOnly("Asia");
Consumer<String> countryRequirement = country ->
assertThat(country)
.isEqualToIgnoringCase("Malaysia");
assertThat(asia)
.isInstanceOfSatisfying(Region.class, regionRequirement)
.extracting(Region::getCountries)
.hasSize(1)
.first()
.isInstanceOfSatisfying(String.class, countryRequirement);
}
protected static class Region
{
private String name;
private List<String> countries;
List<String> getCountries()
{
return countries;
}
Region setCountries(final List<String> pCountries)
{
countries = pCountries;
return this;
}
String getName()
{
return name;
}
Region setName(final String pName)
{
name = pName;
return this;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我期待着.first()回来,String但它却回来了List<String>。出现以下错误:
java.lang.AssertionError: [列表检查第一个元素] 期望:<["Malaysia"]> 是以下实例:<java.lang.String> 但是以下实例:<java.util.ArrayList>
看起来他们解决了这个问题,因为现在可以执行以下操作:
assertThat(asia)
.extracting(Region::getCountries)
.asList()
.first()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15169 次 |
| 最近记录: |