flutter_svg_test

Testing

This package provides a set of functions to find images generated by flutter_svg in widget tests.

The methods find elements with the SvgPicture type and compare either the BytesLoader or the configuration of the BytesLoader with the giving test attribute.

Example

Find by BytesLoader

The following example shows how you can find svgs with the matching SvgAssetLoader.

testWidgets('asset svg', (WidgetTester widgetTester) async {
  final SvgPicture asset = SvgPicture.asset('test/flutter_logo.svg');
  await widgetTester.pumpWidget(
    DefaultAssetBundle(
      bundle: _FakeAssetBundle(),
      child: asset,
    ),
  );

  expect(find.svg(asset.bytesLoader), findsOneWidget);
});

Find by svg path

Sometimes it is more convenient instead of instantiating the whole BytesLoader to compare only specific attributes.

The following example shows how you can find svgs with the specified attribute.

testWidgets('asset svg with path', (WidgetTester widgetTester) async {
  const String svgPath = 'test/flutter_logo.svg';
  await widgetTester.pumpWidget(
    DefaultAssetBundle(
      bundle: _FakeAssetBundle(),
      child: SvgPicture.asset(svgPath),
    ),
  );

  expect(find.svgAssetWithPath(svgPath), findsOneWidget);
});

Commemoration

This package was originally authored by Dan Field and has been forked here from dnfield/flutter_svg. Dan was a member of the Flutter team at Google from 2018 until his death in 2024. Dan’s impact and contributions to Flutter were immeasurable, and we honor his memory by continuing to publish and maintain this package.

Libraries

flutter_svg_test