首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PlatformException (PlatformException(通道错误,无法在通道上建立连接,null,null)),同时模拟使用防火墙的方法

PlatformException (PlatformException(通道错误,无法在通道上建立连接,null,null)),同时模拟使用防火墙的方法
EN

Stack Overflow用户
提问于 2022-07-24 20:28:29
回答 1查看 467关注 0票数 2

当我试图对使用Firestore的方法进行单元测试时,我目前遇到了一个问题。这是我想要模仿的方法。

代码语言:javascript
复制
Future<MediasState> loadMedias(AbstractEvent event) async {
    late AbstractBlocState streamState;
    try {
      DataHelper _dataHelperMediasEvent = DataHelperFactory.instance
          .createInstanceFromAnotherDataHelperAndEntityInstance(
              _dataHelperEvents, event, 'medias');
      List<AbstractMedia> medias =
          (await _dataHelperMediasEvent.getAll()).cast<AbstractMedia>();
      for (AbstractMedia media in medias) {
        media.user = await (_dataHelperUsers.getEntity(media.user.get()));
      }
      medias = sortEntitiesByCreatedDateDesc(medias) as List<AbstractMedia>;
      streamState = MediasShowed(medias);
    } catch (error) {
      streamState = MediasShowedError();
    } finally {
      return streamState as MediasState;
    }
  }

这是我写的测试函数

代码语言:javascript
复制
 test('Test load medias', () async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
    AbstractEvent event =
        EntityFactory.createInstance('Event') as AbstractEvent;

    AbstractMedia media1 =
        EntityFactory.createInstance('Media') as AbstractMedia;

    AbstractMedia media2 =
        EntityFactory.createInstance('Media') as AbstractMedia;

    AbstractMedia media3 =
        EntityFactory.createInstance('Media') as AbstractMedia;

    List<AbstractMedia> listOfMedias = <AbstractMedia>[];

    listOfMedias.add(media1);
    listOfMedias.add(media2);
    listOfMedias.add(media3);

    when(mockMediasEvent.loadMedias(event))
        .thenAnswer((_) async => MediasShowed(listOfMedias));

    blocMedias.add(LoadMediaOfOneEvent(event));

    await expectLater(blocMedias.state, isA<MediasShowedError>());
  });

不幸的是,当我运行这个测试时,我得到了这个错误:“package:firebase_core_platform_interface/src/pigeon/messages.pigeon.dart 199:7 FirebaseCoreHostApi.initializeCore(信道错误,无法在通道上建立连接),null,null)。”

DataHelperFactory创建一个DataHelper实例,该实例需要一个防火墙实例。

代码语言:javascript
复制
class DataHelper {
  DataHelper.initialize(String collectionPath) {
    this.setCollection(collectionPath);
  }

  late String collectionPath;
  late String className;
  late CollectionReference<Map<String, dynamic>> collection;

  final FirebaseFirestore firebaseFirestore = FirebaseFirestore.instance;

我已经试图升级我的防火墙依赖项,但问题仍然存在。我还在Windows和Mac设备上以及朋友设备上尝试了这个问题。任何关于如何修正我的考试的想法都是受欢迎的。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-08-13 01:42:32

颤振式防火墙测试的文档指出,需要使用模拟防火墙库。他们工作起来容易多了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73101803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档