0Pricing
Dart Academy · Lección

Pruebas de código async y streams

Espere futures y verifique secuencias de eventos

Pruebas de código async y streams es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Dart Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Dart Academy incluye 4 lecciones en total.

El código asíncrono requiere atención

Mucho código real devuelve un Future. Si una prueba olvida esperar, puede terminar antes incluso de que finalice el trabajo. ⏳

Devolver o usar await

El ejecutor espera cuando el cuerpo de la prueba es async y usted espera el trabajo con await, o cuando devuelve directamente el Future.

test('loads user', () async {
  final u = await fetchUser();
  expect(u.name, 'Ada');
});

expectLater para Futures

Use expectLater cuando el valor comprobado sea un Future, por ejemplo, para comprobar que un Future se completa con un resultado determinado.

await expectLater(fetchValue(), completion(42));

El matcher completion

El matcher completion se cumple cuando un Future termina correctamente y su valor coincide con el matcher interno.

expectLater(load(), completion(isNotEmpty));

Comprobar errores asíncronos

Para comprobar que un Future falla, combine expectLater con throwsA y verifique que se produce el error correcto.

await expectLater(
  risky(), throwsA(isA<StateError>()));

Los Streams emiten muchos valores

Un Stream envía una secuencia de eventos a lo largo del tiempo. Probarlo implica comprobar toda esa secuencia, en orden.

El matcher emits

Use emits para comprobar el siguiente valor que produce un stream, y emitsInOrder para una secuencia esperada.

await expectLater(
  counter, emitsInOrder([1, 2, 3]));

Señalar el final

El matcher emitsDone comprueba que un stream se cierra cuando corresponde y detecta los streams que nunca terminan.

expectLater(ticks, emitsThrough(emitsDone));

Los Streams también tienen errores

Combine matchers con emitsError para esperar un error en un stream y verificar que los fallos llegan como eventos.

emitsInOrder([1, emitsError(isException)]);

Cuidado con los falsos positivos

Un error habitual es olvidar await: la prueba termina antes y pasa silenciosamente. Espere siempre el trabajo asíncrono con await o devuélvalo.

Los tiempos de espera le ayudan

Si el código asíncrono se bloquea, el ejecutor lo detiene. Puede ajustar la espera con un timeout para una prueba lenta.

test('slow', () async { /* ... */ },
  timeout: Timeout(Duration(seconds: 5)));

Comprobación rápida

¿Cómo comprueba que un stream emite 1, 2 y 3 en ese orden?

Resumen

Esperó los Futures, usó expectLater con completion y throwsA, y comprobó los streams con matchers emits. Código asíncrono probado con confianza. 🌊

Preguntas frecuentes

¿La lección «Pruebas de código async y streams» es gratis?

Sí — el texto completo de «Pruebas de código async y streams» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Dart Academy, actualiza a CoddyKit PRO. El curso de Dart Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Pruebas de código async y streams»?

Espere futures y verifique secuencias de eventos Practicas Dart Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Dart Academy?

No se requiere experiencia previa. Dart Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Pruebas de código async y streams»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Dart Academy?

Sí. Cada lección de Dart Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Su primer test y expect
  2. group, setUp y tearDown
  3. Pruebas de código async y streams
  4. Mocks, fakes y cobertura
← Volver a Dart Academy