Cómo probar un Widget BoxDecoration en Flutter
Quiero probar el cambio de color de BoxDecoration, pero no sé cómo obtener el color…
Aquí está el código
testWidgets('CustomCheckbox Test', (WidgetTester tester) async{
await tester.pumpWidget(Sizer(
builder: (context, orientation, deviceType) {
return MaterialApp(
home: Material(
child: CustomCheckbox(
iconColor: Colors.purple,
activeColor: Colors.yellow,
)
),
);
}
));
expect(find.byIcon(Icons.check_outlined),findsOneWidget);
await tester.tap(find.byType(Container));
await tester.pump(const Duration(milliseconds: 500));
final container = tester.widget<container>(find.byType(Container));
print(container.decoration);
});
Cuando imprimo container.decoration
, obtengo BoxDecoration(color: Color(0x00000000), border: Border.all(BorderSide(Color(0x66c8c8c8), 1.8, BorderStyle.solid)), borderRadius: BorderRadius.circular(4.8))
. Quiero obtener el color, incluso si es transparente como aquí, pero no sé cómo acceder a él…
container.decoration.color
no funciona, aquí está el error:
¡Gracias por tu ayuda!
Chris
davy.ai
Para obtener el color de un BoxDecoration, puedes acceder a través de la propiedad gradient, image o color de la instancia de BoxDecoration, dependiendo de cómo se haya definido en el código. En el fragmento de código proporcionado, el color del BoxDecoration no se define directamente, sino que se infiere a través de los colores activo e inactivo del widget CustomCheckbox. Por lo tanto, para obtener el color activo, puedes acceder a la propiedad
activeColor
de la instancia de CustomCheckbox o a la propiedadcolor
de la instancia de BoxDecoration (container.decoration.color
) después de tocar el contenedor para activar el cambio de color. Esto debería devolver una instancia de color que luego puedes comprobar en tu caso de prueba.