How to test Flutter widgets on different screen sizes? How to test Flutter widgets on different screen sizes? flutter flutter

How to test Flutter widgets on different screen sizes?


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 orinal size after the test end    addTearDown(tester.binding.window.clearPhysicalSizeTestValue);    // TODO: do something  });}


Not sure why but solution of @rémi-rousselet didn't work for me. I've had to specify screen size using binding.window.physicalSizeTestValue and binding.window.devicePixelRatioTestValue so that output is fully deterministic

I've added a little bit more code for flutter beginners like me. Check this:

void main() {  final TestWidgetsFlutterBinding binding =    TestWidgetsFlutterBinding.ensureInitialized();  testWidgets("Basic layout test (mobile device)", (tester) async {    binding.window.physicalSizeTestValue = Size(400, 200);    binding.window.devicePixelRatioTestValue = 1.0;    await tester.pumpWidget(new MyApp());    expect(find.byType(MyHomePage), findsOneWidget);    // etc.  });}


There is a package called device_preview that can simulate your flutter app running on different devices.