Testing 如何在颤振黄金测试中检查字体文本

Testing 如何在颤振黄金测试中检查字体文本,testing,flutter,Testing,Flutter,我正在为蒙古语文本制作一个竖排。我有一个自定义小部件,它需要一种特殊的字体来显示。我正在尝试编写一个测试,显示蒙古语文本已正确呈现 在emulator上,它如下所示: 但黄金文件看起来是这样的: 如果黄金测试只是给我豆腐,我无法验证蒙古语是否被正确渲染 这是我的测试: testWidgets('MongolText renders font', (WidgetTester tester) async { await tester.pumpWidget( MaterialApp(

我正在为蒙古语文本制作一个竖排。我有一个自定义小部件,它需要一种特殊的字体来显示。我正在尝试编写一个测试,显示蒙古语文本已正确呈现

在emulator上,它如下所示:

但黄金文件看起来是这样的:

如果黄金测试只是给我豆腐,我无法验证蒙古语是否被正确渲染

这是我的测试:

testWidgets('MongolText renders font', (WidgetTester tester) async {

  await tester.pumpWidget(
    MaterialApp(
      home: Scaffold(
          appBar: AppBar(title: Text('My App')),
          body: Stack(
            children: <Widget>[
              Center(
                child: MongolText('ᠮᠣᠩᠭᠣᠯ'),
              ),
            ],
          )
      ),
    ),
  );

  await tester.pumpAndSettle();

  await expectLater(
    find.byType(MaterialApp),
    matchesGoldenFile('golden-file.png'),
  );
});
testWidgets('text呈现字体',(WidgetTester测试仪)异步{
等待测试仪.pumpWidget(
材料聚丙烯(
家:脚手架(
appBar:appBar(标题:文本(“我的应用”),
主体:堆栈(
儿童:[
居中(
子:蒙古语('ᠮᠣᠩᠭᠣᠯ'),
),
],
)
),
),
);
等待测试仪。泵和沉降器();
待会儿(
按类型查找(MaterialApp),
matchesGoldenFile('golden-file.png'),
);
});
有办法解决这个问题吗

我读过这两篇关于黄金测试的文章:


看起来还不支持真正的字体


颤振测试目前只支持一种字体,嗯哼


从易趣试用此软件包:

自软件包的
0.2.0-dev
版本以来,您可以使用方法
loadAppFonts()
pubspec.yaml
或您的项目所依赖的任何软件包自动加载字体资产

0.2.0-dev 改进了加载字体资产的机制。消费者不再需要 需要提供从中读取.ttf文件的目录

他们现在只需调用:
等待loadAppFonts()
,软件包就会 自动从其pubspec.yaml或任何 他们所依赖的软件包

现在,您的测试可能如下所示:

testWidgets('Text renders',(tester)异步{
//加载字体
等待loadAppFonts();
//启动您的测试小部件
等待测试仪.pumpWidget(
材料聚丙烯(
家:脚手架(
正文:文本(“我的文本”),
),
),
);
//比较图像文件
等待屏幕匹配黄金(测试员,“黄金文件”);
});

您找到解决方案了吗,@Suragch?@SebastianRoth,没有,我能做的最好的事情就是使用小部件测试查看呈现的文本大小是否发生了变化。