Запускайте тесты на нескольких размерах экрана
Предотвратите переполнение для разных размеров экранов 🤯
Это позволит запустить тест с каждой конфигурацией экрана в
Все подобные новости можно найти по хэштегу #FlutterPulseTips 👍
Оцените новую рубрику в комментариях! 💬
#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #TestingTips #ScreenSize #FlutterTips
Предотвратите переполнение для разных размеров экранов 🤯
Это позволит запустить тест с каждой конфигурацией экрана в
screenSizeVariants
📱
final screenSizeVariants = ValueVariant<ScreenSize>(basicPhones);
testWidgets('''клик на кнопку => отображается закрепленный виджет наложения''', (
WidgetTester tester,
) async {
await tester.setScreenSize(screenSizeVariants.currentValue!);
await tester.pumpWidget(const MyAppWithCircleAnchored());
expect(find.byType(AnchoredHelper), findsNothing);
await tester.tap(find.byType(OutlinedButton).first);
await tester.pump(const Duration(seconds: 2));
expect(find.byType(AnchoredHelper), findsOneWidget);
}, variant: screenSizeVariants);
import 'dart:ui';
import 'package:flutter_test/flutter_test.dart';
// это определяет конфигурацию размера конкретного устройства
class ScreenSize {
// имя этой конфигурации
final String name;
// конфигурация размера и плотность пикселей
final double width, height, pixelDensity;
const ScreenSize(this.name, this.width, this.height, this.pixelDensity);
@override
String toString() => name;
}
extension ScreenSizeManager on WidgetTester {
Future<void> setScreenSize(ScreenSize screenSize) async {
return _setScreenSize(
width: screenSize.width,
height: screenSize.height,
pixelDensity: screenSize.pixelDensity,
);
}
Future<void> _setScreenSize({
double width = 540,
double height = 960,
double pixelDensity = 1,
}) async {
final size = Size(width, height);
await binding.setSurfaceSize(size);
binding.window.physicalSizeTestValue = size;
binding.window.devicePixelRatioTestValue = pixelDensity;
}
}
Все подобные новости можно найти по хэштегу #FlutterPulseTips 👍
Оцените новую рубрику в комментариях! 💬
#flutter #dart #flutterpulse #FlutterPulseTips #MobileDevelopment #TestingTips #ScreenSize #FlutterTips
👍1