dart - 在 Dart 中读取数据文件进行单元测试

标签 dart dart-io dart-async dart-unittest

我正在使用这个 snippet在单元测试中读取数据文件:

var file = new File('/Users/chambery/projects/Foo/src/resources/skills.yaml');
Future<String> finishedReading = file.readAsString();
finishedReading.then((text) {
  print(text);
  print(loadYaml(text));
});
在 Dart 编辑器中运行我没有错误(但没有打印输出),
...
PASS: calc_ranks
PASS: load_skills

All 7 tests passed.
unittest-suite-success
(编辑:删除了命令行错误;dart vm 已过时)
我不需要异步文件读取。

最佳答案

我猜你没有告诉 unittest 框架你的测试是异步的。因此,框架不会等待您的异步测试完成并假设它们通过了。

使用 expectAsyncX (其中“X”是参数的数量)以确保框架等待您的异步测试完成。

请参阅单元测试文档:https://api.dartlang.org/docs/channels/stable/latest/unittest.html

如果您正在处理 future ,您也可以使用 expect(future, completes) .

关于dart - 在 Dart 中读取数据文件进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20869397/

相关文章:

flutter - 在 future builder 中使用列表构建器时 flutter 显示错误

dart - Dart 。子类和构造函数初始化器列表

io - 如何在Dart中使用新的Streams API进行stdin.close()?

dart - 如何设置 HTTP 服务器来为具有自己的包依赖项的客户端提供服务?

flutter - 如何在Dart中使用async *函数

dart - 奇怪的异步行为

unit-testing - 编写dart unittest时如何正确使用 `expectAsync2`?

dart - 如何在 Flutter 中反转文本?

websocket - flutter websockets autoreconnect - 如何实现

dart - 在 Dart 中添加 map 中的所有值