如何在 Flutter 中使用 compute() 测试函数?
How do I test function with compute() in Flutter?
我正在尝试使用 compute() 函数测试异步方法,但是当我通过 Android Studio 运行 测试 ('Compute test') 时,它没有完成并且只打印'Start test'.
测试 运行 使用命令:
../bin/flutter --no-color test --machine --start-paused --plain-name "Compute test" test/test_compute.dart
测试class:
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');
});
}
要正常工作,测试应该 运行 没有 --start_paused
参数。
来自 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
我正在尝试使用 compute() 函数测试异步方法,但是当我通过 Android Studio 运行 测试 ('Compute test') 时,它没有完成并且只打印'Start test'.
测试 运行 使用命令:
../bin/flutter --no-color test --machine --start-paused --plain-name "Compute test" test/test_compute.dart
测试class:
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');
});
}
要正常工作,测试应该 运行 没有 --start_paused
参数。
来自 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