当我试图对使用Firestore的方法进行单元测试时,我目前遇到了一个问题。这是我想要模仿的方法。
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;
}
}这是我写的测试函数
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实例,该实例需要一个防火墙实例。
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设备上以及朋友设备上尝试了这个问题。任何关于如何修正我的考试的想法都是受欢迎的。
谢谢。
发布于 2022-08-13 01:42:32
颤振式防火墙测试的文档指出,需要使用模拟防火墙库。他们工作起来容易多了。
https://stackoverflow.com/questions/73101803
复制相似问题