问题描述
我正在使用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 (将#修改为@)