Flutter Driver не имеет явного метода для проверки наличия / наличия виджета, но мы можем создать собственный метод, который будет служить цели, используя метод waitFor
. Например, у меня есть простой text
виджет на экране, и я напишу тест драйвера флаттера, чтобы проверить, присутствует ли этот виджет или нет, используя пользовательский метод 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
и затем выполню тест, он обнаружит, что виджет отсутствует:
Надеюсь, это поможет.