Vic*_*ves 5 flutter flutter-test
不知道这是一个限制还是什么,但是下面的代码不会加载任何东西。我有一些数据驱动的行为,我想对它们进行测试。
类加载器
import 'dart:async';
import 'package:flutter/services.dart' show rootBundle;
class Loader {
Future<String> load() async{
return await rootBundle.loadString('assets/json/sketch.json');
}
}
Run Code Online (Sandbox Code Playgroud)
考试
testWidgets('Should parse load sketch.json', (WidgetTester tester) async {
var loaderFuture = new Loader();
Future<String> resultFuture = loaderFuture.load();
resultFuture.then((value) => print(value))
.catchError((error) => print(error));
while(true){};
});
Run Code Online (Sandbox Code Playgroud)
未来不会返回成功或错误,并且永远挂起。我知道while(true)锁定了测试,但是现在我只想看一下输出sketch.json的信息。
资产位置
要rootBundle在您的测试中使用,您需要在测试程序的开头使用它:
import 'package:flutter_test/flutter_test.dart';
...
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
Run Code Online (Sandbox Code Playgroud)
请参阅DefaultAssetBundle的文档,它描述了使用它和 AssetBundle 来提供您自己的资产。
| 归档时间: |
|
| 查看次数: |
2037 次 |
| 最近记录: |