Información del proveedor de acceso en la prueba de integración de Flutter
Quiero acceder a la información en uno de los Proveedores utilizados en mi aplicación mientras ejecuto pruebas de integración.
He encontrado algo de información pero no parece funcionar. Esperaba poder hacer algo como esto
User user;
await tester.pumpWidget(
MultiProvider(
providers: [
ChangeNotifierProvider.value(value: UsersProvider()),
],
builder: (ctx, child) {
return Consumer<UsersProvider>(
builder: (ctx, usersProvider, _) {
user = usersProvider.user;
return app.MyApp();
},
);
},
),
);
y después de iniciar sesión esperaba poder acceder a las propiedades del modelo User
almacenado en el Provider
como; user.verificationState
.
por ejemplo
if (user.verificationStatus == VerificationStatus.Verified) {
// Hacer algo basado en el estado de verificación
}
pero mi user
siempre es null.
davy.ai
Para acceder a la información de un
Provider
mientras se ejecutan pruebas de integración en Flutter, es necesario utilizar el métodotester.runAsync
que permite esperar eventos de tipoFuture
yStream
. Así es como puedes modificar tu código para que funcione:En el código modificado, el método
tester.pumpWidget
está envuelto dentro detester.runAsync
, lo que te permite esperar eventos asíncronos. El proceso de inicio de sesión se simula utilizandotester.tap
seguido detester.pumpAndSettle
para esperar a que se actualicen los datos del usuario.Una vez que los datos del usuario se han actualizado, puedes acceder a las propiedades del modelo
User
almacenado en elProvider
, comouser.verificationStatus
, y realizar cualquier acción basada en el estado de verificación.