我正在尝试测试我的习惯SearchDelegate。示例测试将检查在有多少个字符后它开始给出建议。
我编写了两个示例测试,它们以某种方式相互影响。它们都是相同的,但是当我一起运行它们时,代码中后面出现的测试总是失败。
\n\n在调试时,我发现FutureBuilder方法buildSuggestions不会等待searchEngine.search(query)未来完成,但它只发生在第二次测试中。
我已经尝试在点击搜索图标后添加一个test.runAsyncwith Future.delayedinside 。另外,我简化了案例以使其更具可读性。
您可以在这里找到完整的代码:https://github.com/pmiara/search-delegate-test-fail \也可以在下面查看。
\n\n申请代码:
\n\nimport \'dart:convert\';\n\nimport \'package:flutter/material.dart\';\nimport \'package:flutter/services.dart\';\n\nclass Entity {\n final String value;\n\n Entity.fromJson(Map<String, dynamic> json) : value = json[\'value\'];\n}\n\nclass MySearchDelegate extends SearchDelegate {\n final MySearchEngine searchEngine;\n\n MySearchDelegate({@required this.searchEngine});\n\n @override\n List<Widget> buildActions(BuildContext context) {\n return [];\n }\n\n @override\n Widget buildLeading(BuildContext context) {\n return IconButton(\n icon: Icon(Icons.arrow_back),\n onPressed: () {\n close(context, null);\n },\n );\n }\n\n @override\n Widget buildResults(BuildContext …Run Code Online (Sandbox Code Playgroud)