如何在Flutter中测试本地化的小部件?

时间:2018-09-23 06:48:50

标签: flutter

我按照flutter docs的建议在我的flutter应用程序中添加了l10n,建议使用这样的静态方法来获取本地化:

static DemoLocalizations of(BuildContext context) {
  return Localizations.of<DemoLocalizations>(context, DemoLocalizations);
}

这在运行应用程序时很好用,但是当我尝试测试窗口小部件时,返回的值始终为空。

有没有简单的方法可以在测试中提供本地化?

目前,我正在通过DI进行本地化,但这是相当大的开销。

3 个答案:

答案 0 :(得分:2)

您可以将要测试的小部件包装到Localizations

Localizations(
  delegates: [
    yourDelegate
  ],
  locale: Locale('en'),
  child: YourWidget(),
);

答案 1 :(得分:1)

我认为您应该阅读此问题。如果文件json超过10kb,则无法加载资产。我们应该一直关注并等待Flutter团队对其进行修复或真正的解决方案https://github.com/flutter/flutter/issues/22193

答案 2 :(得分:0)

上述答案无济于事,因为我正在从json文件中调用字符串。 medium blog实际上解决了我的问题。