Baseflow / Baseflow/flutter_cached_network_image
How to test error widget
- Dominant language
- Dart
- Stars
- 2.6k
- Forks
- 731
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 1
Description
Hello,
is there a way to widget test CachedNetworkImage error widget ?
Here is an example :
Test OK with Image.network
```dart
testWidgets('network image', (tester) async {
final widget = Image.network(availableImageUrl, errorBuilder: (ctx, error, stack) => const Text('error'));
await tester.pumpWidget(widget);
await tester.pump();
expect(find.text('error'), findsOneWidget);
});
```
Test KO with CachedNetworkImage
```dart
testWidgets('cached network image', (tester) async {
final widget = CachedNetworkImage(
imageUrl: availableImageUrl,
errorWidget: (ctx, url, stack) => const Text('error'),
);
await tester.pumpWidget(widget);
await tester.pumpAndSettle();
expect(find.text('error'), findsOneWidget);
});
```
I know that in unit test, every http request fail with 400 status code, i can override CacheManager to use local file instead but it will represent my success case. I just want to test my error case.
And it seems to stuck on place holder, why ? I don't know :(
Test OK
```dart
testWidgets('cached network image', (tester) async {
final widget = MaterialApp(
home: CachedNetworkImage(
imageUrl: availableImageUrl,
placeholder: (ctx, url) => const Text('place holder'),
errorWidget: (ctx, url, error) => const Text('error'),
),
);
await tester.pumpWidget(widget);
await tester.pumpAndSettle();
expect(find.text('place holder'), findsOneWidget);
});
```
Thank you in advance for your help :)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.