travailler avec des tests en flutter et avec le nouveau package de tests d'intégration n'a rien trouvé qui puisse m'aider.
Mon problème est que je dois exécuter plusieurs tests, mais lorsque le premier test se termine ou que le deuxième test échoue, car lorsque le test se termine, l'application ne redémarre pas immédiatement. Mon code est comme ceci: et je ne sais pas si c'est la meilleure façon de le faire.
void main() {
(IntegrationTestWidgetsFlutterBinding.ensureInitialized()
as IntegrationTestWidgetsFlutterBinding)
.defaultTestTimeout = const Timeout(Duration(minutes: 2));
WelcomeTester welcomeTester;
LoginTester loginTester;
group('e2e integration test', () {
testWidgets('Test case 1',
(WidgetTester tester) async {
await app.main();
await tester.pumpAndSettle(const Duration(seconds: 5));
welcomeTester = WelcomeTester(tester);
loginTester = LoginTester(tester);
await welcomeTester.checkScreenOpenedByKey(WelcomeKeys.screenWelcomePage);
await welcomeTester.findTitle();
await welcomeTester.scrollThePage();
await welcomeTester.tapButton(WelcomeKeys.btnHaveAccount);
await welcomeTester.checkScreenOpenedByKey(LoginKeys.screenLoginPage);
});
testWidgets('Test case 2',
(WidgetTester tester) async {
await tester.pumpAndSettle(const Duration(seconds: 5));
welcomeTester = WelcomeTester(tester);
await welcomeTester.checkScreenOpenedByKey(WelcomeKeys.screenWelcomePage);
await welcomeTester.tapButton(WelcomeKeys.btnCreateAccount);
await welcomeTester.checkScreenOpenedByKey(OnboardingKeys.screenTermsPage);
});
});
}
Mon objectif est de créer dans app_test.dart plusieurs groupes de test et dans chaque groupe plusieurs TestWidgets
Solution du problème
Vous devez l'utiliser à chaque fois que l'application change pour lui donner une chance de passer à l'action suivante.
await tester.pumpAndSettle();
Pour vous installer dans l'interface utilisateur avant de passer à l'action suivante.
Documents : https://api.flutter.dev/flutter/flutter_test/WidgetTester/pumpAndSettle.html
Aucun commentaire:
Enregistrer un commentaire