在颤振单元测试中访问 rootBundle

Posted

技术标签:

【中文标题】在颤振单元测试中访问 rootBundle【英文标题】:accessing rootBundle in flutter unit test 【发布时间】:2020-03-20 12:19:34 【问题描述】:

我正在我的颤振应用程序中编写单元测试,似乎我无法从测试中的资产中读取 json,但如果我运行应用程序,它就可以工作,

我使用下面的代码将 json 读取为字符串:

var jsonString = await rootBundle.loadString("assets/student_list.json");

如何在测试中访问 jsons 资产?

【问题讨论】:

AFAIK 您只能在小部件测试中访问捆绑包。我还没有找到在单元测试中访问它们的方法。 【参考方案1】:

将此行添加为测试中要执行的第一行,它将工作并加载资产:

TestWidgetsFlutterBinding.ensureInitialized();

它将在运行您的代码之前初始化所有内容,并且此时可以访问资产。

【讨论】:

以上是关于在颤振单元测试中访问 rootBundle的主要内容,如果未能解决你的问题,请参考以下文章

迁移空安全后颤振模拟单元测试错误

颤振从单元\小部件测试调用http请求而不进行模拟

如何在单元测试中访问 Dart 类

为啥 ApplicationsDocumentsDirectory 为单元测试返回 null?

grails Grails 单元测试中的应用程序访问

如何在颤振小部件测试中发出 http 请求?