unit-testing - 如何在 Flutter 中使用compute() 测试函数?

标签 unit-testing flutter dart dart-isolates

我正在尝试使用compute()函数测试异步方法,但是当我通过Android Studio运行test('Compute test')时,它没有完成并仅打印'Start test'。

使用以下命令运行测试:

../bin/flutter --no-color test --machine --start-paused --plain-name "Compute test" test/test_compute.dart

测试类:

import 'package:flutter/foundation.dart';
import 'package:flutter_test/flutter_test.dart';

int testCompute(int value) {
  print('Test compute');
  return value + 1;
}

void main() {
  test('Compute test', () async {
    print('Start test');
    int result = await compute(testCompute, 0);
    print('End test: $result');
  });
}

最佳答案

Google 的某人说您需要使用 runAsync() 运行测试。

void main() {
  testWidgets('compute', (WidgetTester tester) async {
    dynamic data = await tester.runAsync(() => parseData('[1]'));
    print(data);
  });
}

Future<dynamic> parseData(String str) => compute(parseJson, str);

dynamic parseJson(String str) {
  return json.decode(str);
}

来源:https://github.com/flutter/flutter/issues/35484#issuecomment-517931625

关于unit-testing - 如何在 Flutter 中使用compute() 测试函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64128265/

相关文章:

database - Golang 测试,调用数据库 Prepare 应该会失败,但实际上并没有

unit-testing - iPhone单元测试OCMock,如何模拟只读变量?

php - 在 lumen 5.5 中测试文件上传

flutter - 如何修复 GoRouter.of(context).pop() 以便它导航到上一页?

android - 如何存储临时值?

Flutter:根据 Firestore 查询更改 ListTile

c# - 如何单元测试 Core MVC Controller 操作是否调用 ControllerBase.Problem()

Flutter Moor 的加入和去向

dart - const构造函数创建非const类对象?

Flutter 将文本与上面文本的宽度对齐