无法使用rootBundle在Flutter测试中加载资产

时间:2018-08-01 01:16:56

标签: android dart flutter

我创建了一个Loader类,用于加载包含名称的文本资产。在程序中使用时,它工作正常,但是当我尝试在测试中使用它时,出现错误Unable to load asset: assets/texts/names.txt

我的目录结构是

|- assets  
   |- texts  
      |- names.txt  
|- load_text  
   |- load_text.dart  
   |- loader.dart  
|- test  
   |- asset_test.dart

我的pubspec.yaml中包含- assets/texts/names.txt

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');
   });
}

除无法找到资产的测试外,其他所有操作均正常。需要帮忙。谢谢!

0 个答案:

没有答案