如何使用 FlutterDriver 检查小部件是否可见
How to check if widget is visible using FlutterDriver
我不确定如何使用 FlutterDriver
.
检查当前是否显示小部件
使用 WidgetTester
this is really easy to perform using e.g. findsOneWidget
.
但是,在使用 FlutterDriver
进行集成测试期间,无法访问 WidgetTester
对象。
FlutterDriver.waitFor
方法不指示是否在给定的持续时间内找到小部件。
如何使用 FlutterDriver
检查屏幕上是否有小部件?
Flutter Driver 没有明确的方法来检查小部件是否存在/存在,但我们可以创建一个自定义方法来使用 waitFor
方法来达到目的。例如,我在屏幕上有一个简单的 text
小部件,我将使用自定义方法编写一个 flutter 驱动程序测试来检查该小部件是否存在 isPresent
.
主要代码:
body: Center(
child:
Text('This is Test', key: Key('textKey'))
用于检查此小部件是否存在的 Flutter 驱动程序测试如下:
test('check if text widget is present', () async {
final isExists = await isPresent(find.byValueKey('textKey'), driver);
if (isExists) {
print('widget is present');
} else {
print('widget is not present');
}
});
isPresent
为自定义方法,定义如下:
isPresent(SerializableFinder byValueKey, FlutterDriver driver, {Duration timeout = const Duration(seconds: 1)}) async {
try {
await driver.waitFor(byValueKey,timeout: timeout);
return true;
} catch(exception) {
return false;
}
}
运行 测试检测到小部件存在:
如果我注释掉 text
小部件代码然后 运行 测试,它检测到小部件不存在:
我不确定如何使用 FlutterDriver
.
使用 WidgetTester
this is really easy to perform using e.g. findsOneWidget
.
但是,在使用 FlutterDriver
进行集成测试期间,无法访问 WidgetTester
对象。
FlutterDriver.waitFor
方法不指示是否在给定的持续时间内找到小部件。
如何使用 FlutterDriver
检查屏幕上是否有小部件?
Flutter Driver 没有明确的方法来检查小部件是否存在/存在,但我们可以创建一个自定义方法来使用 waitFor
方法来达到目的。例如,我在屏幕上有一个简单的 text
小部件,我将使用自定义方法编写一个 flutter 驱动程序测试来检查该小部件是否存在 isPresent
.
主要代码:
body: Center(
child:
Text('This is Test', key: Key('textKey'))
用于检查此小部件是否存在的 Flutter 驱动程序测试如下:
test('check if text widget is present', () async {
final isExists = await isPresent(find.byValueKey('textKey'), driver);
if (isExists) {
print('widget is present');
} else {
print('widget is not present');
}
});
isPresent
为自定义方法,定义如下:
isPresent(SerializableFinder byValueKey, FlutterDriver driver, {Duration timeout = const Duration(seconds: 1)}) async {
try {
await driver.waitFor(byValueKey,timeout: timeout);
return true;
} catch(exception) {
return false;
}
}
运行 测试检测到小部件存在:
如果我注释掉 text
小部件代码然后 运行 测试,它检测到小部件不存在: