Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振测试扩展EditableText小部件上的enterText“;错误状态:无元素“:构建可编辑文本以供参考_Flutter_Testing_Dart_Mention - Fatal编程技术网

Flutter 颤振测试扩展EditableText小部件上的enterText“;错误状态:无元素“:构建可编辑文本以供参考

Flutter 颤振测试扩展EditableText小部件上的enterText“;错误状态:无元素“:构建可编辑文本以供参考,flutter,testing,dart,mention,Flutter,Testing,Dart,Mention,我有一个扩展EditableText的类,它提供样式化的编辑-颜色跨度等等 父窗口小部件有一个bool标志来使用默认TextInput或扩展EditableText的自定义标志 对于默认测试,测试工作正常: final String dummyDesc = 'dummy desc'; final Finder mention = find.byType(Mention); await tester.enterText(mention, dummyDesc); 但是,如果我在使用自定义输入的页面

我有一个扩展EditableText的类,它提供样式化的编辑-颜色跨度等等

父窗口小部件有一个bool标志来使用默认TextInput或扩展EditableText的自定义标志

对于默认测试,测试工作正常:

final String dummyDesc = 'dummy desc';
final Finder mention = find.byType(Mention);
await tester.enterText(mention, dummyDesc);
但是,如果我在使用自定义输入的页面上执行相同的操作,测试将失败,因为它找不到TextInput,因为没有TextInput

错误:

错误状态:无元素


如何在扩展EditableText的小部件上使用enterText?还是类似的?

这似乎是由于
showKeyboard
方法在内部调用了
enterText

它检查查找程序是否匹配或是
EditableText
的后代,后者根据runtimeType进行匹配

这有点不成熟,但您可以提供一个runtimeType getter,它返回
EditableText
,并允许它工作

class Mention extends EditableText {
  // ...

  Type get runtimeType => EditableText;

  // ...
}
警告:这意味着您将无法再
查找.byType(提及)
。您可以通过编写自定义查找器或使用谓词查找器
find.byElementPredicate((Element-Element)=>Element.widget)
来解决这个问题