gpt4 book ai didi

dart - 使用 NetworkImage 进行 Flutter 小部件测试

转载 作者:IT老高 更新时间:2023-10-28 12:35:07 25 4
gpt4 key购买 nike

我有一个带有 NetworkImageWidget(到目前为止是硬编码的 url)。
我想对这个 Widget 进行小部件测试,但在运行小部件测试时得到 404(网址 100% 有效)。
我怎样才能让 NetworkImages 自己加载或(更好)忽略它们,这样我的测试就不会因为 404 而失败?

最佳答案

在小部件测试中,默认 HTTP 客户端 has been replaced一个总是返回 400s。 flutter_markdown repo 中有一个关于如何执行此操作的示例以及其他几个地方。我曾经将它复制并粘贴到每个项目中,但我做了足够多的时间来感到很无聊。

现在有一个库(由我创建),名为 "image_test_utils" .您可以使用 provideMockedNetworkImages 方法包装小部件测试,该方法将模拟的 HTTP 客户端替换为始终返回透明图像的客户端。这反过来又使您的测试通过。

pubspec.yaml:

dev_dependencies:
image_test_utils: ^1.0.0

my_image_test.dart:

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:image_test_utils/image_test_utils.dart';

void main() {
testWidgets('my image test', (WidgetTester tester) async {
provideMockedNetworkImages(() async {
/// Now we can pump NetworkImages without crashing our tests. Yay!
await tester.pumpWidget(
MaterialApp(
home: Image.network('https://example.com/image.png'),
),
);

/// No crashes.
});
});
}

关于dart - 使用 NetworkImage 进行 Flutter 小部件测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49166234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com