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

Flutter测试报错:type 'Null' is not a subtype of type 'bool' 原因及解决方法

错误原因及解决办法

错误原因

  • 核心问题是类型不匹配:在TelevisiDetailResponse.fromJson方法解析JSON时,某个被声明为非空bool类型的字段,从JSON中读取到了null值,导致类型转换失败。
  • 错误发生在televisi_detail_model.dart第50行,说明该行代码未处理JSON字段为null的情况,而当前测试用的JSON数据里对应字段恰好是null。

解决方法

  • 调整模型字段可空性:如果API允许该字段返回null,将模型中对应字段的类型从bool改为bool?(可空布尔类型),同步更新解析逻辑:
    // 原错误代码示例:
    bool adult = json['adult'] as bool;
    
    // 修改为可空类型:
    bool? adult = json['adult'] as bool?;
    
  • 设置默认值规避null:如果业务逻辑要求该字段必须有值,在解析时为null设置默认布尔值:
    bool adult = json['adult'] as bool? ?? false;
    // 可根据需求将默认值设为true
    
  • 修正测试数据:检查televisi_remote_data_source_test.dart第118行附近的测试JSON数据,确保对应字段的值是有效的true或false,而非null。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:05:22