You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何验证AssertJ提取对象列表属性后所有值非空?

AssertJ中extracting后调用isNotNull()的验证逻辑

你当前写的assertThat(theList).extracting("fieldA", "fieldB").isNotNull(),只会验证extracting方法返回的整个Iterable对象本身不为null,也就是你列出的第1种情况。

至于另外两种场景,需要用不同的断言方法:

  • 要验证列表中的每个元组(即每一组提取出的fieldA和fieldB组合)都不为null:使用noneNull()
    assertThat(theList).extracting("fieldA", "fieldB").noneNull();
    
  • 要验证每个元组里的所有属性值(也就是每个fieldA和fieldB的值)都不为null:可以用两种方式实现
    // 方式1:遍历每个元组验证内部属性
    assertThat(theList).extracting("fieldA", "fieldB")
                       .allSatisfy(tuple -> assertThat(tuple).allNotNull());
    
    // 方式2:分别提取单个属性验证
    assertThat(theList).extracting("fieldA").allNotNull();
    assertThat(theList).extracting("fieldB").allNotNull();
    

内容的提问来源于stack exchange,提问作者gph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:54:49