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

Flutter测试中如何校验查找到的Step组件的isActive属性是否为true

Flutter Step组件isActive属性校验方案

你之前的写法错误核心有两点:

  1. 定位目标错误,没有匹配到需要校验的Step组件本身
  2. 不能直接在Finder或Element实例上读取Widget的自定义属性,需要先通过测试工具拿到Step组件实例再做断言

正确实现代码如下:

// 第一步:通过Step的title文本定位到对应的Step组件
final targetStepFinder = find.ancestor(
  of: find.text('Initialize a New Flutter Release'),
  matching: find.byType(Step),
);

// 第二步:获取Step组件实例,读取isActive属性做断言
final Step targetStep = tester.widget<Step>(targetStepFinder);
expect(targetStep.isActive, isTrue);

如果你的页面存在多个相同title的Step,可以调整定位逻辑,比如通过Step在父组件中的索引位置定位,示例如下:

// 取第1个Step组件(索引从0开始)
final targetStepFinder = find.byType(Step).at(0);
final Step targetStep = tester.widget<Step>(targetStepFinder);
expect(targetStep.isActive, isTrue);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:09:02