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
});
}
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets("foo", (tester) async {
tester.view.physicalSize = Size(42, 42);
// resets the screen to its original size after the test end
addTearDown(tester.view.resetPhysicalSize);
// TODO: do something
});
}
8条答案
按热度按时间dsekswqp1#
可以使用WidgetTester指定自定义表面大小
下面的代码将运行屏幕大小为42x42的测试
k10s72fa2#
不知道为什么,但是@rémi-rousselet的解决方案对我不起作用。我必须使用
binding.window.physicalSizeTestValue
和binding.window.devicePixelRatioTestValue
指定屏幕大小,以便输出完全确定我为像我这样的flutter初学者添加了更多的代码。看看这个
jhdbpxl93#
有一个名为device_preview的软件包可以模拟在不同设备上运行的flutter应用程序。
rqcrx0a64#
@rémi-rousselet的解决方案非常有效!
此外,如果你想测试方向的变化,试试这个:
u3r8eeie5#
目前最安全的方法是使用setSurfaceSize
查看Github相关问题
wbgh16ku6#
您可以尝试此小部件来测试您的小部件实时更改屏幕大小
屏幕尺寸测试
https://pub.dev/packages/screen_size_test
预览
Demohttps://dartpad.dartlang.org/43d9c47a8bf031ce3ef2f6314c9dbd52
代码示例
mwkjh3gx7#
虽然@Rémi Rousselet的回答很有帮助,但它并没有完全解决我的问题。事实证明,我可以将测试中的小部件 Package 在一个
MediaQuery
小部件中并设置大小。v8wbuo2f8#
自3.10.0版本起,窗口单例已弃用(https://docs.flutter.dev/release/breaking-changes/window-singleton)。因此,现在必须按如下方式设置大小: