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
相关产品推荐
相关产品推荐

