Una introducción a las pruebas unitarias
Cómo escribir pruebas unitarias.
¿Cómo puedes asegurarte de que tu aplicación siga funcionando a medida que añades más funciones o cambias la funcionalidad existente? Escribiendo pruebas.
Las pruebas unitarias son útiles para verificar el comportamiento de una sola función,
método o clase. El paquete test
proporciona el
framework principal para escribir pruebas unitarias, y el paquete flutter_test
proporciona utilidades adicionales para probar Widgets.
Esta receta demuestra las características principales que proporciona el paquete test
utilizando los siguientes pasos:
- Añade la dependencia
testoflutter_test. - Crea un archivo de prueba.
- Crea una clase para probar.
- Escribe una
pruebapara nuestra clase. - Combina múltiples pruebas en un
grupo. - Ejecuta las pruebas.
Para obtener más información sobre el paquete test, consulta la documentación del paquete test.
1. Añade la dependencia test
#El paquete test proporciona la funcionalidad principal para
escribir pruebas en Dart. Este es el mejor enfoque cuando se
escriben paquetes consumidos por la web, el servidor y aplicaciones Flutter.
Para añadir el paquete test como una dependencia de desarrollo,
ejecuta flutter pub add:
flutter pub add dev:test
2. Crea un archivo de prueba
#En este ejemplo, crea dos archivos: counter.dart y counter_test.dart.
El archivo counter.dart contiene una clase que quieres probar y
reside en la carpeta lib. El archivo counter_test.dart contiene
las pruebas en sí y se encuentra dentro de la carpeta test.
En general, los archivos de prueba deben residir dentro de una carpeta test
ubicada en la raíz de tu aplicación o paquete Flutter.
Los archivos de prueba siempre deben terminar con _test.dart,
esta es la convención que utiliza el ejecutor de pruebas (test runner) al buscar pruebas.
Cuando hayas terminado, la estructura de carpetas debería verse así:
counter_app/
lib/
counter.dart
test/
counter_test.dart
3. Crea una clase para probar
#A continuación, necesitas una "unidad" para probar. Recuerda: "unidad" es otro nombre para una
función, método o clase. Para este ejemplo, crea una clase Counter
dentro del archivo lib/counter.dart. Es responsable de incrementar
y decrementar un valor (value) que comienza en 0.
class Counter {
int value = 0;
void increment() => value++;
void decrement() => value--;
}
Nota: Por simplicidad, este tutorial no sigue el enfoque de "Desarrollo Guiado por Pruebas" (Test Driven Development). Si te sientes más cómodo con ese estilo de desarrollo, siempre puedes optar por esa vía.
4. Escribe una prueba para nuestra clase
#Dentro del archivo counter_test.dart, escribe la primera prueba unitaria. Las pruebas se
definen utilizando la función test de nivel superior, y puedes verificar si los resultados
son correctos utilizando la función expect de nivel superior.
Ambas funciones provienen del paquete test.
// Import the test package and Counter class
import 'package:counter_app/counter.dart';
import 'package:test/test.dart';
void main() {
test('Counter value should be incremented', () {
final counter = Counter();
counter.increment();
expect(counter.value, 1);
});
}
5. Combina múltiples pruebas en un grupo
#
Si quieres ejecutar una serie de pruebas relacionadas,
utiliza la función group del paquete flutter_test
para categorizar las pruebas.
Una vez colocadas en un grupo, puedes llamar a flutter test en todas las pruebas de
ese grupo con un solo comando.
import 'package:counter_app/counter.dart';
import 'package:test/test.dart';
void main() {
group('Test start, increment, decrement', () {
test('value should start at 0', () {
expect(Counter().value, 0);
});
test('value should be incremented', () {
final counter = Counter();
counter.increment();
expect(counter.value, 1);
});
test('value should be decremented', () {
final counter = Counter();
counter.decrement();
expect(counter.value, -1);
});
});
}
6. Ejecuta las pruebas
#Ahora que tienes una clase Counter con pruebas en su lugar,
puedes ejecutar las pruebas.
Ejecuta pruebas usando IntelliJ o VSCode
#Los plugins de Flutter para IntelliJ y VSCode admiten la ejecución de pruebas. Esta suele ser la mejor opción mientras escribes pruebas porque proporciona el ciclo de retroalimentación más rápido, así como la capacidad de establecer puntos de interrupción (breakpoints).
-
IntelliJ
- Abre el archivo
counter_test.dart - Ve a Run > Run 'tests in counter_test.dart'. También puedes presionar el atajo de teclado correspondiente para tu plataforma.
- Abre el archivo
-
VSCode
- Abre el archivo
counter_test.dart - Ve a Run > Start Debugging. También puedes presionar el atajo de teclado correspondiente para tu plataforma.
- Abre el archivo
Ejecuta pruebas en una terminal
#Para ejecutar todas las pruebas desde la terminal, ejecuta el siguiente comando desde la raíz del proyecto:
flutter test test/counter_test.dart
Para ejecutar todas las pruebas que colocaste en un grupo,
ejecuta el siguiente comando desde la raíz del proyecto:
flutter test --plain-name "Test start, increment, decrement"
Este ejemplo utiliza el grupo creado en la sección 5.
Para aprender más sobre las pruebas unitarias, puedes ejecutar este comando:
flutter test --help
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.