在 Flutter 中使用 network_image_mock 包进行图像测试

Posted

技术标签:

【中文标题】在 Flutter 中使用 network_image_mock 包进行图像测试【英文标题】:Image testing with network_image_mock package in Flutter 【发布时间】:2021-12-27 08:03:27 【问题描述】:

我正在尝试测试具有 Image.network 子级的小部件。

提供以下日志。

══╡ EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE ╞════════════════════════════════════════════════════
The following _CastError was thrown resolving an image codec:
type 'Null' is not a subtype of type 'List<int>' in type cast

When the exception was thrown, this was the stack:
#1      _MockHttpResponse.drain (package:flutter_test/src/_binding_io.dart:364:22)
#2      NetworkImage._loadAsync (package:flutter/src/painting/_network_image_io.dart:99:24)
<asynchronous suspension>
<asynchronous suspension>
(elided 2 frames from dart:async and package:stack_trace)

我的测试:

testWidgets('My new test', (WidgetTester tester) async 
    mockNetworkImagesFor(() async 
      await tester.pumpWidget(
        MaterialApp(
          home: Scaffold(
            body: ScreenWidget(),
          ),
        ),
      );

      final myImageFinder = find.byKey(const Key('TheImageWidget'));

      expect(myImageFinder, findsOneWidget);

    );
  );

在上面的代码示例中,ScreenWidget 有一个子代Image.network

有什么想法吗?

【问题讨论】:

【参考方案1】:

你的小部件没有返回,所以你调用它的列表仍然是空的并且颤动不喜欢它。

【讨论】:

以上是关于在 Flutter 中使用 network_image_mock 包进行图像测试的主要内容,如果未能解决你的问题,请参考以下文章

在 Flutter Web 中使用 Flutter 移动包

如何使用 flutter_webview 插件在 Flutter 中启用位置?

在flutter中使用Chopper网络库和flutter_bloc库

Flutter : 在 Flutter web 中使用 Froala-editor

如何在flutter中使用flutter_webview_plugin和AndroidX

在 Flutter 中使用 webview_flutter 4.0 | 基础用法与事件处理