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

Flutter widget测试中如何获取TestVariant的当前枚举值

你可以在testWidgets的测试代码块中通过TestVariant.currentValue获取当前运行的枚举值,你定义的ColorVariant泛型为MyColor,将其强转为对应类型即可直接使用。

示例修改后的测试代码如下:

testWidgets(
  'Should reflect Color',
  (tester) async {
    // 获取当前运行的MyColor枚举值
    final currentColor = TestVariant.currentValue as MyColor;
    // 后续基于currentColor编写对应测试逻辑即可
  },
  variant: ColorVariant(),
);

如果希望避免每次使用都手动做类型转换,你也可以在自定义的ColorVariant类中新增一个静态快捷获取方法,优化使用体验:

class ColorVariant extends TestVariant<MyColor> {
  // 新增快捷获取当前运行值的静态方法
  static MyColor get current => TestVariant.currentValue! as MyColor;

  @override
  String describeValue(MyColor value) {
    return value.toString();
  }

  @override
  Future<Object?> setUp(MyColor value) {
    // Do setup here
    return Future.value(null);
  }

  @override
  Future<void> tearDown(MyColor value, covariant Object? memento) {
    // Do teardown here
    return Future.value();
  }

  @override
  Iterable<MyColor> get values => MyColor.values;
}

优化后测试代码块中可以直接调用快捷方法取值:

testWidgets(
  'Should reflect Color',
  (tester) async {
    final currentColor = ColorVariant.current;
    // 测试逻辑
  },
  variant: ColorVariant(),
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:45:02