我正在为蒙古文的垂直文本制作一个套餐。我有一个自定义小部件,需要一个特殊的字体来显示。我试图写一个测试,显示蒙古文已正确呈现。
在模拟器上,它看起来如下所示:
但是黄金文件看起来是这样的:
如果金考只是给我豆腐,我无法证实蒙古文的渲染是否正确。
这是我的考验:
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'),
);
});
有办法解决这个问题吗?
我读过这两篇关于黄金测试的文章:
发布于 2020-06-15 20:06:29
颤振测试目前只支持一种字体。
从eBay:工具包中试用这个包
发布于 2019-12-09 15:39:47
发布于 2021-06-13 10:46:42
由于包的版本0.2.0-dev
,所以您可以访问loadAppFonts()
方法,以便从pubspec.yaml
或项目所依赖的任何包中自动加载字体资产。
0.2.0-dev 改进了加载字体资产的机制。使用者不再需要提供一个目录来读取.ttf文件。 他们现在可以简单地调用:
await loadAppFonts()
,这个包将自动从他们的pubspec.yaml或他们所依赖的任何包中加载任何字体资产。
现在,您的测试可能如下所示:
testWidgets('Text renders', (tester) async {
// Load fonts
await loadAppFonts();
// Pump your test widget
await tester.pumpWidget(
MaterialApp(
home: Scaffold(
body: Text('My text'),
),
),
);
// Compare image file
await screenMatchesGolden(tester, 'golden-file');
});
https://stackoverflow.com/questions/59104547
复制相似问题