我在Flutter上运行的测试中出现了图像错误

k7fdbhmy  于 2023-10-22  发布在  Flutter
关注(0)|答案(1)|浏览(99)

互联网图像不被保存在Flutter测试,是给这个错误,我试图使用从另一个问题的答案,但他们不为我工作
flutter:00:00 +0:主屏幕[E] Flutter :测试失败。参见上面的异常日志。测试描述为:主屏幕抖动:扑动:警告:此套件中至少有一个测试创建了一个HttpClient。当运行一个使用TestWidgetsFlutterBinding的测试套件时,所有的HTTP请求都将返回状态码400,实际上不会发出网络请求。任何期望真实的网络连接和状态代码的测试都将失败。若要测试需要HttpClient的代码,请为被测代码提供您自己的HttpClient实现,以便您的测试可以一致地为被测代码提供可测试的响应。flutter:00:00 +0 -1:一些测试失败了。

HOMEVIEW

class HomeView extends StatefulWidget {
     const HomeView({super.key});
   
     @override
     State<HomeView> createState() => _HomeViewState();
   }
   
   class _HomeViewState extends State<HomeView> {
   
     @override
     Widget build(BuildContext context) {
       return Scaffold(
         appBar: const CsAppBar(
           title: 'Home',
         ),
         body: Column(
           mainAxisAlignment: MainAxisAlignment.center,
           children: [
             Image.network( 
               'https://thecolor.blog/wp-content/uploads/2021/10/GIF-1.gif',
               width: double.maxFinite,
               height: 400,
             ),
           ],
         ),
       );
     }
   }

HOMEVIEWTEST

import 'package:flutter/material.dart';
   import 'package:flutter_test/flutter_test.dart';
   import 'package:network_image_mock/network_image_mock.dart';
   import 'package:para_testes/views/home/home_view.dart';
   
   void main(){
   
     testWidgets('Home screen', (tester) async {
       await mockNetworkImagesFor(() => _createWidget(tester));
   
       final image = find.byWidgetPredicate((widget) => widget is Image);
   
       expect(image, findsOneWidget);
   
     });
   }
   
   Future<void> _createWidget(WidgetTester tester) async{
     await tester.pumpWidget(const MaterialApp(home: HomeView()));
   
     await tester.pump();
   }
czq61nw1

czq61nw11#

我猜你不需要在小部件测试中测试Http连接。只是用

import 'dart:io';

void main(){

  setUpAll(() {
    HttpOverrides.global = null;
  });
...

在你的测试开始。您将确保Image小部件呈现在页面上。
此外,使用上面的代码片段时,您不需要network_image_mock

相关问题