Baseflow / Baseflow/flutter_cached_network_image
Tests throw an exception
- Dominant language
- Dart
- Stars
- 2.6k
- Forks
- 731
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 1
Description
## π Bug Report
The plugin throws an exception when doing tests with `testWidgets`. The tests don't fail as the exception is thrown after it completes. But it leaves a lot of console spam like this:
`βββ‘ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK βββββββββββββββββββββββββββββββββββββββββββββββββββββ
The following MissingPluginException was thrown running a test (but after the test had completed):
MissingPluginException(No implementation found for method getDatabasesPath on channel
com.tekartik.sqflite)
When the exception was thrown, this was the stack:
#0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:154:7)
#1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:329:12)
#2 invokeMethod (package:sqflite/src/sqflite_impl.dart:17:13)
#3 SqfliteDatabaseFactoryImpl.invokeMethod (package:sqflite/src/factory_impl.dart:82:7)
#4 SqfliteDatabaseFactoryMixin.safeInvokeMethod. (package:sqflite_common/src/factory_mixin.dart:25:35)
#5 wrapDatabaseException (package:sqflite/src/exception_impl.dart:7:32)
#6 SqfliteDatabaseFactoryImpl.wrapDatabaseException (package:sqflite/src/factory_impl.dart:78:7)
#7 SqfliteDatabaseFactoryMixin.safeInvokeMethod (package:sqflite_common/src/factory_mixin.dart:25:7)
#8 SqfliteDatabaseFactoryMixin.getDatabasesPath (package:sqflite_common/src/factory_mixin.dart:143:26)
#9 getDatabasesPath (package:sqflite/sqflite.dart:168:54)
#10 CacheStore._getObjectProvider (package:flutter_cache_manager/src/cache_store.dart:43:33)
#11 new CacheStore (package:flutter_cache_manager/src/cache_store.dart:39:49)
#12 BaseCacheManager._createCacheStore (package:flutter_cache_manager/src/cache_manager.dart:263:12)
#13 new BaseCacheManager (package:flutter_cache_manager/src/cache_manager.dart:84:28)
#14 new DefaultCacheManager._ (package:flutter_cache_manager/src/cache_manager.dart:40:29)
#15 new DefaultCacheManager (package:flutter_cache_manager/src/cache_manager.dart:36:39)
#16 CachedNetworkImageState._cacheManager (package:cached_network_image/src/cached_image_widget.dart:404:35)
#17 CachedNetworkImageState._createFileStream (package:cached_network_image/src/cached_image_widget.dart:242:19)
#18 CachedNetworkImageState.initState (package:cached_network_image/src/cached_image_widget.dart:219:5)
#19 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4640:58)
#20 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4476:5)
... Normal element mounting (39 frames)
#59 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3446:14)
#60 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5947:32)
... Normal element mounting (36 frames)
#96 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3446:14)
#97 Element.updateChild (package:flutter/src/widgets/framework.dart:3214:18)
#98 SliverMultiBoxAdaptorElement.updateChild (package:flutter/src/widgets/sliver.dart:1162:36)
#99 SliverMultiBoxAdaptorElement.createChild. (package:flutter/src/widgets/sliver.dart:1147:20)
#100 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2607:19)
#101 SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:1140:11)
#102 RenderSliverMultiBoxAdaptor._createOrObtainChild. (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:354:23)
#103 RenderObject.invokeLayoutCallback. (package:flutter/src/rendering/object.dart:1866:58)
#104 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:918:15)
#105 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:1866:13)
#106 RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:343:5)
#107 RenderSliverMultiBoxAdaptor.addInitialChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:427:5)
#108 RenderSliverFixedExtentBoxAdaptor.performLayout (package:flutter/src/rendering/sliver_fixed_extent_list.dart:197:12)
#109 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#110 RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:135:11)
#111 _RenderSliverFractionalPadding.performLayout (package:flutter/src/widgets/sliver_fill.dart:168:11)
#112 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#113 RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:452:13)
#114 RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1444:12)
#115 RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1353:20)
#116 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#117 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#118 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#119 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#120 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#121 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#122 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#123 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#124 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#125 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#126 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#127 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#128 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#129 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#130 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#131 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#132 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#133 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#134 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#135 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:556:15)
#136 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#137 RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:266:13)
#138 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#139 RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:746:15)
#140 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#141 _RenderSingleChildViewport.performLayout (package:flutter/src/widgets/single_child_scroll_view.dart:512:13)
#142 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#143 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#144 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#145 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#146 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#147 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#148 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#149 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#150 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#151 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#152 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#153 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#154 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#155 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#156 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#157 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#158 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#159 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#160 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#161 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:11)
#162 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:484:7)
#163 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#164 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:399:14)
#165 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#166 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#167 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#168 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#169 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1248:11)
#170 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#171 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#172 RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
#173 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
#174 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1630:7)
#175 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:887:18)
#176 AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1009:23)
#177 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:284:5)
#178 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1113:15)
#179 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1052:9)
#180 AutomatedTestWidgetsFlutterBinding.pump. (package:flutter_test/src/binding.dart:879:9)
#183 TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:72:41)
#184 AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:866:27)
#185 WidgetTester.pumpAndSettle. (package:flutter_test/src/widget_tester.dart:542:23)
#186 WidgetTester.pumpAndSettle. (package:flutter_test/src/widget_tester.dart:537:39)
#189 TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:72:41)
#190 WidgetTester.pumpAndSettle (package:flutter_test/src/widget_tester.dart:537:27)
#191 main.... (file:///C:/code/baltics-flutter/test/product_screen_test.dart:46:24)
(elided 16 frames from dart:async and package:stack_trace)`
### Expected behavior
To not throw an exception when used on tests.
### Reproduction steps
Just add a `CachedNetworkImage` to a widget and write a test for it with `testWidgets`.
### Configuration
**Platform:**
- [X] :iphone: iOS
- [X] :robot: Android
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.