flutter - Flutter Bloc 测试:用于空值的空检查运算符(空安全)
问题描述
我正在使用flutter_bloc、bloc_test 和bloc_testing 来实现测试。但即使在我在设置中初始化 Bloc 之后,错误也会说 Null 检查运算符用于空值。
import 'package:bloc_test/bloc_test.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
import 'package:orotask/logic/bloc/map_bloc/map_bloc.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:orotask/logic/repository/addr_map_repository.dart';
class MockAddrRepository extends Mock implements MapAddrRepository {}
void main()async {
late MapAddrRepository mapAddrRepository ;
late MapBloc mapBloc;
await Firebase.initializeApp();
setUp(() {
mapAddrRepository = MapAddrRepository();
mapBloc = MapBloc();
});
tearDown(() {
mapBloc.close();
});
blocTest<MapBloc, MapState>('Map Bloc Initial State Tests',
build: () => mapBloc,
expect: () => MapNotLoaded());
}
错误flutter test --no-sound-null-safety
(我有一些不支持空安全的依赖项)
00:20 +0 -1: loading C:\Users\Dell\Desktop\OroTask\orotask\test\src\bloc\visit_bloc\visit_bloc_test.dart [E]
Failed to load "C:\Users\Dell\Desktop\OroTask\orotask\test\src\bloc\visit_bloc\visit_bloc_test.dart": Null check operator used on a null value
package:flutter/src/services/platform_channel.dart 142:86 MethodChannel.binaryMessenger
package:flutter/src/services/platform_channel.dart 148:36 MethodChannel._invokeMethod
package:flutter/src/services/platform_channel.dart 331:12 MethodChannel.invokeMethod
package:flutter/src/services/platform_channel.dart 344:41 MethodChannel.invokeListMethod
package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart 30:37 MethodChannelFirebase._initializeCore
package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart 77:13 MethodChannelFirebase.initializeApp
package:firebase_core/src/firebase.dart 41:47 Firebase.initializeApp
test\src\bloc\visit_bloc\visit_bloc_test.dart
14:18
解决方案
firbase 应用程序没有集成,因为它的未来需要异步包装
void main() async {
await Firebase.initializeApp();}
推荐阅读
- reactjs - React 测试库:我是否需要为每个测试键使用新的选择器进行新的测试?
- macos - 如何为 NWJS 准备将应用程序提交到 mac 应用商店的权利?
- android - 使用一个 Android 应用处理两个不同的 Firebase 实时数据库
- php - 数据透视表上的 HasMany 使用了错误的 ID
- xamarin - Xamarin.Forms UWP 应用程序不能在 XBOX 上作为本机工作
- python-3.x - 如何删除字典的前几行?
- python - 在Python中定义类变量时如何引用类方法?
- javascript - javascript获取最新的属性值
- android - 如何在 google play 中保护我的 api 调用(通过身份验证)
- ios - UIView在设置宽度等于滚动视图时忽略我的约束?