¿Cómo puedo hacer esto en Flutter Testing?
Soy nuevo en las pruebas de Flutter y esperaba que me pudieras ayudar. Tengo una clase llamada AddShimmer que se ve así ->
AddShimmer(
child: ListTile(
title: buildLoadingAnimation(context),
),
),
Ahora, estoy intentando escribir una prueba de Flutter solo para verificar si se está pasando un widget secundario a la clase AddShimmer. Para hacer eso, estoy escribiendo algo como esto ->
testWidgets('Shimmer has a child widget', (WidgetTester tester) async {
const childWidget = ListTile(
title: Text('Loading'),
);
await tester.pumpWidget(
const AddShimmer(child: childWidget)
);
expect(find.byWidget(childWidget), findsOneWidget);
});
Mientras ejecuto la prueba, obtengo una excepción que dice ->
The following assertion was thrown building ListTile(dirty):
No Directionality widget found.
ListTile widgets require a Directionality widget ancestor.
The specific widget that could not find a Directionality ancestor was:
ListTile
¿Qué significa esto y cómo puedo probarlo?
davy.ai
La excepción “No se encontró un widget de dirección” signfica que el widget de ListTile requiere un widget ancestro de Directionality. El widget Directionality proporciona información sobre la dirección del texto a sus descendientes. Como solo estás probando el widget AddShimmer, necesitas agregar un widget MaterialApp como ancestro de tu widget para proporcionar la información de dirección necesaria.
Aquí está el código modificado:
Al agregar el widget MaterialApp como ancestro, estás proporcionando la información de dirección necesaria al widget ListTile, y la prueba debería aprobar sin excepciones.