Search code examples
flutterflutter-test

How to test Flutter widgets on different screen sizes?


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 had a look through the widget_tester source code but can't find anything.


Solution

  • You can specify custom surface size by using WidgetTester

    The following code will run a test with a screen size of 42x42

    import 'package:flutter/widgets.dart';
    import 'package:flutter_test/flutter_test.dart';
    
    void main() {
      testWidgets("foo", (tester) async {
        tester.binding.window.physicalSizeTestValue = Size(42, 42);
    
        // resets the screen to its original size after the test end
        addTearDown(tester.binding.window.clearPhysicalSizeTestValue);
    
        // TODO: do something
      });
    }