为什么在运行单元测试时会出现平台异常错误?

问题描述 投票:0回答:1

我正在运行单元测试,但出现以下错误:


Failed to load "/Users/m..../Dev/Flutter....../test/message_model_test.dart": PlatformException(channel-error, Unable to establish connection on channel., null, null)
package:firebase_core_platform_interface/src/pigeon/messages.pigeon.dart 210:7                                         FirebaseCoreHostApi.initializeCore
===== asynchronous gap ===========================
package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart 29:44                         MethodChannelFirebase._initializeCore
===== asynchronous gap ===========================
package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart 73:7                          MethodChannelFirebase.initializeApp
===== asynchronous gap ===========================
package:firebase_core/src/firebase.dart 43:31                                                                          Firebase.initializeApp
===== asynchronous gap ===========================
test/message_model_test.dart 17:3                                                                                      main
message_model_test.dart:17
===== asynchronous gap ===========================
/var/folders/4v/vjplfnj17lq60v0x252lkv740000gn/T/flutter_tools.4XDyQX/flutter_test_listener.aDKvGa/listener.dart 19:3  _testMain

单元测试代码如下:

import 'package:facilify_ui/timer/models/message_model.dart';
import 'package:fake_cloud_firestore/fake_cloud_firestore.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:test/test.dart';




 

  void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

 late final FakeFirebaseFirestore dbInstance;

 setUpAll(() async {
    dbInstance = FakeFirebaseFirestore();

  });


  test('Creating a new instance of MessageModel with all required parameters should succeed', () {
    final selfRef = dbInstance.collection('messages').doc('message1');
    final created = DateTime.now();
    const message = 'Hello, world!';
    final userRef = dbInstance.collection('users').doc('user1');
    const userName = 'John Doe';
    const userImage = 'https://example.com/user1.jpg';

    final messageModel = MessageModel(
      selfRef: selfRef,
      created: created,
      message: message,
      userRef: userRef,
      userName: userName,
      userImage: userImage,
    );

    expect(messageModel.selfRef, equals(selfRef));
    expect(messageModel.attachment, isNull);
    expect(messageModel.message, equals(message));
    expect(messageModel.created, equals(created));
    expect(messageModel.userRef, equals(userRef));
    expect(messageModel.userName, equals(userName));
    expect(messageModel.userImage, equals(userImage));
  });
}

我已经更新了依赖项,但仍然遇到相同的平台异常错误问题。可能与 firebase 初始化有关。 我已经更新了依赖项,但仍然遇到相同的平台异常错误问题。可能与 firebase 初始化有关。我已经更新了依赖项,但仍然遇到相同的平台异常错误问题。可能与 firebase 初始化有关。我已经更新了依赖项,但仍然遇到相同的平台异常错误问题。可能与 firebase 初始化有关。

flutter firebase unit-testing
1个回答
0
投票

插件在 Dart 单元测试中不可用,仅在 Flutter 应用程序中可用。如果您想测试包含插件的代码,则需要编写集成测试;对于单元测试,您需要避免调用任何插件代码。有关此主题的官方文档,请参阅 https://docs.flutter.dev/testing/plugins-in-tests

© www.soinside.com 2019 - 2024. All rights reserved.