作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个 Loader 类来加载包含名称的文本 Assets 。它在程序中使用时工作正常,但当我尝试在测试中使用它时出现错误 Unable to load asset: assets/texts/names.txt
。
我的目录结构是
|- assets |- texts |- names.txt |- load_text |- load_text.dart |- loader.dart |- test |- asset_test.dart
my pubspec.yaml has - assets/texts/names.txt
included.
loader.dart
class Loader{
Future<String> loadNames() async{
return await rootBundle.loadString('assets/texts/names.txt');
}
}
load_text.dart
class ValidationApp extends StatelessWidget{
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'userDetApp',
home: Scaffold(
appBar: AppBar(title: Text('Load names'),),
body: Column(
children: <Widget>[
RaisedButton(
child: Text('Click'),
onPressed: (){
Loader().loadNames().then((names){
print(names);
});
},
)
],
)
),
);
}
asset_test.dart
void main(){
test('Should load asset', () async{
String names = await new Loader().loadNames();
expect(names, 'John, Peter, Mary');
});
}
除了未能找到 Assets 的测试外,一切正常。需要帮忙。谢谢!
最佳答案
我在使用 flutter driver
访问文件资源进行集成测试时遇到了类似的问题。作为解决方法,我所做的是加载 API 所需的资源并直接解析 JSON 响应,而不是从 Assets 文件夹访问资源。
这是您可以试用的示例。这使用 https://jsonplaceholder.typicode.com作为其端点样本。
test('Test http', () async {
final file = await http.get(Uri.parse('https://jsonplaceholder.typicode.com/albums/1'));
final json = jsonDecode(file.body.toString());
print('json contents: $json');
print('userId: ${json['userId']}');
final userId = json['userId'];
expect(userId, 1);
});
关于android - 无法使用 rootBundle 在 flutter 测试中加载 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51624078/
我是一名优秀的程序员,十分优秀!