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 (将#修改为@)