当前位置: 首页 > 知识库问答 >
问题:

AssertJ:从提取列表中检索第一项将返回列表

卜飞鸣
2023-03-14

我正在尝试验证提取列表中的第一项。但是,AssertJ返回一个列表而不是从.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;
          }
    }
}

共有1个答案

齐典
2023-03-14

object断言的Extracting提取被测试对象(此处为Asia)属性,从而产生提取属性值的列表。您的代码只提取了一个属性,因此结果是一个值的列表,结果是该值也是一个列表,在提取之后,您最终得到的是一个元素列表asia.countries

 类似资料:
  • 本文向大家介绍sharepoint项目。从列表中检索项目,包括了sharepoint项目。从列表中检索项目的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 问题内容: 我有一个看起来像这样的列表列表: 删除重复列表的最佳方法是什么?使用上面的示例,我正在寻找会产生这种情况的代码: 我最初以为我可以使用,但这似乎不适用于列表列表。我还看到了一个使用的示例,但是代码对我来说并不完全清楚。谢谢您的帮助! 问题答案: uniq_animal_groups = set(map(tuple, animal_groups)) 尽管您将得到一组元组而不是一组列表,但

  • 问题内容: 我想知道什么是提取列表列表中每个子列表的第一项并将其附加到新列表的最佳方法。所以,如果我有: 我想退出,并从中创建一个单独的列表。 我试过了: 问题答案: 使用列表理解:

  • 问题内容: 我有一个功能。,它接受一个整数并返回True或False。 我有10个整数的列表。我想返回列表中的第一个项目(与原始列表的顺序相同),该项目已返回True。 尽可能地Python。 问题答案: next(x for x in lst if matchCondition(x)) 应该可以,但是如果列表中的所有元素都不匹配,它将提高。您可以通过提供第二个参数来抑制这种情况: 如果没有匹配项

  • 本文向大家介绍Visual Basic .NET从列表中检索项目,包括了Visual Basic .NET从列表中检索项目的使用技巧和注意事项,需要的朋友参考一下 示例 output: 你好,世界 如果您不知道项目的索引或仅了解字符串的一部分,请使用Find或FindAll方法 output: 你好,世界 该的FindAll方法返回一个新的列表(字符串) 输出=“您好,测试” output(1)=

  • 问题内容: 在我要查询的字典中,该字典中的一项是具有多个项目()的列表。 我想检索每个值并存储在新列表中。您可以为此建议代码吗? 问题答案: http://docs.djangoproject.com/en/dev/ref/request- response/#django.http.QueryDict.getlist