如何解决Flutter:未在小部件测试中调用Mapbox onMapCreated
我正在使用Mapbox地图,当我在模拟器中运行该应用程序时,它可以正常工作。但是,在我的小部件测试中,从未调用onMapCreated
方法,这使得无法测试应用程序的行为。
我的MapWidget(精简):
class MapWidget extends StatefulWidget {
final LatLng initialCameraPositionCoordinates;
final double initialZoomLevel;
const MapWidget({
Key key,@required this.initialCameraPositionCoordinates,@required this.initialZoomLevel,}) : super(key: key);
@override
State createState() => MapWidgetState();
}
class MapWidgetState extends State<MapWidget> {
@override
Widget build(BuildContext context) {
return BlocConsumer<Cubit,State>(
builder: (context,state) {
return MouseRegion(
cursor: MouseCursor.defer,child: MapboxMap(
onMapCreated: _onMapCreated,),);
},);
}
void _onMapCreated(MapboxMapController controller) async {
print("This is never called in the test");
}
相应的窗口小部件测试如下:
void main() {
testWidgets("Mapbox",(WidgetTester tester) async {
await tester.pumpWidget(
BlocProvider(
create: (_) => _cubit,child: MaterialApp(
home: MapWidget(
initialCameraPositionCoordinates:
_initialCameraPositionCorrdinates,initialZoomLevel: _initialZoomLevel,);
await tester.pump(Duration(seconds: 10));
});
}
不会引发任何异常,这意味着它可以正常显示。但是,onMapCreated
中的打印语句永远不会打印。
在模拟器中运行应用程序,将调用打印语句。
有人知道这里发生了什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。