Saltar al contenido principal

Desaprobar containsSemantics en favor de isSemantics

El matcher `containsSemantics` ha sido deprecado en favor de los matchers `isSemantics` y `matchesSemantics`.

Resumen

#

El matcher parcial containsSemantics está deprecado y ha sido reemplazado por isSemantics para aclarar la intención y estandarizar las convenciones de los matchers.

Contexto

#

El prefijo contains para matchers parciales, como containsSemantics, se ha reemplazado con is para alinearse con las convenciones de nombres:

  • Matchers parciales (como isSemantics) coinciden solo con las propiedades proporcionadas explícitamente. Cualquier argumento no proporcionado se ignora.
  • Matchers exactos (como matchesSemantics) verifican todos los valores. Se espera que cualquier argumento no proporcionado coincida con los valores predeterminados del objeto.

Guía de migración

#

Para migrar automáticamente tu código, ejecuta el siguiente comando:

dart fix --apply

Alternativamente, reemplaza containsSemantics con isSemantics para coincidencia parcial (el caso más común), o con matchesSemantics si necesitas verificar valores de propiedad exactos (incluyendo los valores predeterminados para los argumentos omitidos).

Código antes de la migración:

dart
expect(
  tester.getSemantics(find.byType(MyWidget)),
  containsSemantics(
    label: 'My Widget',
    isButton: true,
  ),
);

Código después de la migración:

dart
expect(
  tester.getSemantics(find.byType(MyWidget)),
  isSemantics(
    label: 'My Widget',
    isButton: true,
  ),
);

Timeline

#

Introducido en la versión: 3.40.0-1.0.pre
En la versión estable: 3.41

Referencias

#

Documentación de la API:

Issues relevantes:

PR relevante: