Flutter 小部件测试如何模拟网络图像

Sil*_*eNL 7 flutter flutter-test

我正在尝试测试我的小部件,但我的网络图像上不断出现 400 错误。这是预期的行为,因为 flutter 不希望您在测试中发出 http 请求。但由于这种行为,我的小部件测试失败了。他们里面有一个 image.network(url) 。

我尝试过这个image_test_utils软件包,但很快发现这个软件包没有维护 sinds 2018。所以我选择了这个Network Image Mock软件包。这是维护但不起作用:(不是我的问题,但相同)https://github.com/stelynx/network_image_mock/issues/6

现在我想尝试一些flutter自己制作的东西:我添加了这个:https ://github.com/flutter/flutter_markdown/blob/a2fa53b7a29dc58b6f26b53e23a6f5a8d283dd66/test/flutter_markdown_test.dart#L506-L548

但我不知道如何使用它。

小智 1

很抱歉这么晚才回答,所以我发现这种依赖关系与mockito完美配合。

pubspec.yaml:

dev_dependencies:
   network_image_mock: ^2.0.1
Run Code Online (Sandbox Code Playgroud)

测试.dart:

mockNetworkImagesFor(
    () async {
      return tester.pumpWidget(
        MaterialApp(
          theme: lightTheme,
          home: Container(
            alignment: Alignment.center,
            width: getScreenWidth(),
            height: getScreenHeight(),
            child: //widget here
          ),
        ),
      );
    },
  );
Run Code Online (Sandbox Code Playgroud)