如何在 Flutter 中测试图像小部件的源路径
Posted
技术标签:
【中文标题】如何在 Flutter 中测试图像小部件的源路径【英文标题】:How to test Image widgets source path in Flutter 【发布时间】:2021-04-24 23:45:13 【问题描述】:我有以下设置:
return Container(
child: widget.searchResult.companyLogoUrl.isEmpty
? Image.asset('assets/images/missing-company-logo.png')
: Image.network(widget.searchResult.companyLogoUrl),
)
现在我想测试在没有提供 url 时是否加载了丢失的徽标图像。 测试中获取Image小部件后如何获取源url或本地文件?
testWidgets('given', (tester) async
await tester.pumpWidget(createSearchResultCard(mockResponse));
await tester.pumpAndSettle();
final Image image = find.byType(Image).evaluate().single.widget as Image;
final String source = image. // How do I get the file source?
expect(...)
);
有没有办法知道加载了哪张图片?
【问题讨论】:
【参考方案1】:使用Image
小部件类的image
属性检查图像提供程序是什么。从那里您可以提取单个属性:
String source;
if(image.image is AssetImage)
source = image.image.assetName;
else if(image.image is NetworkImage)
source = image.image.url;
您可以根据需要扩展他以包含更多可能的图像提供者。
【讨论】:
它有效。在 if 情况下,我不得不再次对 image.image 进行类型转换,但之后一切顺利。以上是关于如何在 Flutter 中测试图像小部件的源路径的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - 如何在图像下方使用带有图像和文本/图标的容器小部件