How to test Flutter widgets on different screen sizes?

后端 未结 5 2004
长情又很酷
长情又很酷 2020-11-29 09:09

I have a Flutter widget which shows extra data depending on the screen size. Does anyone know a way of testing this widget on multiple different screen sizes?

I\'ve

5条回答
  •  粉色の甜心
    2020-11-29 09:59

    Although @Rémi Rousselet's answer was very helpful it didn't completely solve my problem. It turns out that I could just wrap my widget under test in a MediaQuery widget and set the size.

    import 'package:flutter/material.dart';
    import 'package:flutter_test/flutter_test.dart';
    
    void main() {
      Widget makeTestableWidget({Widget child, Size size}) {
        return MaterialApp(
          home: MediaQuery(
            data: MediaQueryData(size: size),
            child: child,
          ),
        );
      }
    
      testWidgets("tablet", (tester) async {
        final testableWidget = makeTestableWidget(
          child: WidgetUnderTest(),
          size: Size(1024, 768),
        );
    
        ...
      });
    
      testWidgets("phone", (tester) async {
        final testableWidget = makeTestableWidget(
          child: WidgetUnderTest(),
          size: Size(375, 812),
        );
    
        ...
      });
    }
    

提交回复
热议问题