我正在为垂直的蒙古文文字制作package。我有一个需要特殊字体才能显示的自定义小部件。我正在尝试编写一个显示蒙古文字已正确呈现的测试。
在模拟器上,它看起来像这样:
但是金色文件看起来像这样:
如果黄金测试只是给我豆腐,我无法验证蒙古人的渲染正确。
这是我的测试
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'),
);
});
有什么办法可以解决这个问题?
我已经阅读了这两篇有关黄金测试的文章:
答案 0 :(得分:3)
颤振测试目前仅支持一种字体,嗯。
从eBay试用以下软件包:https://pub.dev/packages/golden_toolkit
答案 1 :(得分:1)
答案 2 :(得分:1)
从包的 0.2.0-dev
版本开始,您可以访问方法 loadAppFonts()
以自动从 pubspec.yaml
或您的项目依赖的任何包加载字体资源。
改进了加载字体资源的机制。消费者不再 需要提供一个目录来读取 .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');
});