我的单元测试需要一个需要异步运行的安装程序.也就是说,在运行测试之前,我需要等待设置完成,但是设置处理的是期货.

推荐答案

使用DART M3,setUp函数可以 Select 返回Future.如果安装程序返回Future,则单元测试框架将等待Future完成,然后再运行各个测试方法.

下面是一个示例:

group(('database') {
  var db = createDb();
  setUp(() {
    return openDatabase()
      .then((db) => populateForTests(db));
  });

  test('read', () {
    Future future = db.read('foo');
    future.then((value) {
      expect(value, 'bar');
    });
    expect(future, completes);
  });
});

了解更多关于setUp的信息.

Dart相关问答推荐

Flutter - MultiProvider 如何与相同类型的提供者一起工作?

NetworkImage 正在缓存旧图像

Flutter/Dart:子类化冻结的数据类

从 PopupMenuItem 中删除填充(overflow menu)

Swipe返回手势

如何在 ListView 中添加额外的底部间距?

Flutter 如何移动文件

找不到正确的提供程序-Flutter

如何在Flutter 的http.MultipartRequest请求上上传文件时获取进度事件

如何从目录中获取文件列表并将其传递给ListView?

Flutter判断变量是否为 NaN

可选参数的默认值必须是常量

如何从 Dart 中的字符串中删除换行符?

如何使用 Dart 列出目录的内容?

如何在 Dart 中读取控制台输入/标准输入?

使用 VSCode 创建和运行 Dart 控制台应用程序?

如何在 Dart 中运行重复出现的函数?

在 Dart 中将类型化函数作为参数传递

如何在 Dart 中合并两个列表?

如何用 Dart 格式化日期?