Probar plugins
Aprende cómo probar tu paquete de plugin.
Todos los tipos habituales de pruebas de Flutter también se aplican a los paquetes de plugins, pero debido a que los plugins contienen código nativo, a menudo también requieren otros tipos de pruebas para probar toda su funcionalidad.
Tipos de pruebas de plugins
#Para ver ejemplos de cada uno de estos tipos de pruebas, puedes crear un nuevo plugin a partir de la plantilla de plugin y buscar en los directorios indicados.
-
Pruebas unitarias de Dart y pruebas de widgets. Estas pruebas te permiten probar la parte Dart de tu plugin al igual que probarías el código Dart de un paquete que no es un plugin. Sin embargo, el código nativo del plugin no se cargará, por lo que cualquier llamada a los platform channels debe ser mockeada en las pruebas.
Consulta el directorio
testpara ver un ejemplo. -
Pruebas de integración de Dart. Dado que las pruebas de integración se ejecutan en el contexto de una aplicación Flutter (la app de ejemplo), pueden probar tanto el código Dart como el nativo, así como la interacción entre ellos. También son útiles para pruebas unitarias de código de implementación web que necesita ejecutarse en un navegador.
Estas suelen ser las pruebas más importantes para un plugin. Sin embargo, las pruebas de integración de Dart que usan
integration_testno pueden interactuar con la UI nativa, como diálogos nativos o el contenido de platform views. Para soporte de interacción con componentes nativos, considera usarpatrolConsulta el directorio
example/integration_testpara ver un ejemplo. -
Pruebas unitarias nativas. Al igual que las pruebas unitarias de Dart pueden probar las partes en Dart de un plugin de forma aislada, las pruebas unitarias nativas pueden probar las partes nativas de forma aislada. Cada plataforma tiene su propio sistema de pruebas unitarias nativas, y las pruebas se escriben en los mismos lenguajes nativos que el código que se está probando.
Las pruebas unitarias nativas pueden ser especialmente valiosas si necesitas mockear APIs envueltas por el código de tu plugin, lo cual no es posible en una prueba de integración de Dart.
Puedes configurar y usar cualquier framework de pruebas nativo con el que estés familiarizado para cada plataforma, pero los siguientes ya vienen configurados en la plantilla de plugin:
Android: Las pruebas de JUnit se pueden encontrar en
android/src/test/.iOS y macOS: Las pruebas de XCTest se pueden encontrar en
example/ios/RunnerTests/yexample/macos/RunnerTests/respectivamente. Estas se encuentran en el directorio example, no en el directorio del paquete de nivel superior, porque se ejecutan a través del proyecto de la app de ejemplo.Linux y Windows: Las pruebas de GoogleTest se pueden encontrar en
linux/test/ywindows/test/, respectivamente.
Otros tipos de pruebas, que actualmente no están preconfigurados en la plantilla, son las pruebas de UI nativas. Ejecutar tu aplicación bajo un framework de pruebas de UI nativo, como Espresso o XCUITest, permite realizar pruebas que interactúan con elementos de la UI tanto nativa como de Flutter, por lo que puede ser útil si tu plugin no se puede probar sin interacciones con la UI nativa.
Ejecutar pruebas
#Pruebas unitarias de Dart
#Estas se pueden ejecutar como cualquier otra prueba unitaria de Flutter,
ya sea desde tu IDE de Flutter preferido,
o usando flutter test.
Pruebas de integración
#Para obtener información sobre cómo ejecutar este tipo de prueba, consulta la
documentación de pruebas de integración.
Los comandos deben ejecutarse en el directorio example.
Pruebas unitarias nativas
#Para todas las plataformas, necesitas construir la aplicación de ejemplo al menos una vez antes de ejecutar las pruebas unitarias, para asegurarte de que se hayan creado todos los archivos de compilación específicos de la plataforma.
Android JUnit
Si tienes el ejemplo abierto como un proyecto de Android en Android Studio, puedes ejecutar las pruebas unitarias usando la UI de pruebas de Android Studio.
Para ejecutar las pruebas desde la línea de comandos,
usa el siguiente comando en el directorio example/android:
./gradlew testDebugUnitTest
iOS and macOS XCTest
Si tienes la app de ejemplo abierta en Xcode, puedes ejecutar las pruebas unitarias usando la UI de pruebas de Xcode.
Para ejecutar las pruebas desde la línea de comandos,
usa el siguiente comando en el directorio example/ios (para iOS)
o example/macos (para macOS):
xcodebuild test -workspace Runner.xcworkspace -scheme Runner -configuration Debug
Para pruebas en iOS, es posible que primero debas abrir
Runner.xcworkspace en Xcode para configurar el firmado de código.
Linux GoogleTest
Para ejecutar las pruebas desde la línea de comandos, usa el siguiente comando en el directorio example, reemplazando "my_plugin" con el nombre de tu proyecto de plugin:
build/linux/plugins/x64/debug/my_plugin/my_plugin_test
Si construiste la app de ejemplo en modo release en lugar de debug, reemplaza "debug" con "release".
Windows GoogleTest
Si tienes la app de ejemplo abierta en Visual Studio, puedes ejecutar las pruebas unitarias usando la UI de pruebas de Visual Studio.
Para ejecutar las pruebas desde la línea de comandos, usa el siguiente comando en el directorio example, reemplazando "my_plugin" con el nombre de tu proyecto de plugin:
build/windows/plugins/my_plugin/Debug/my_plugin_test.exe
Si construiste la app de ejemplo en modo release en lugar de debug, reemplaza "Debug" con "Release".
Qué tipos de pruebas agregar
#Los consejos generales para probar proyectos de Flutter también se aplican a los plugins. Algunas consideraciones adicionales para las pruebas de plugins:
-
Dado que solo las pruebas de integración pueden probar la comunicación entre Dart y los lenguajes nativos, intenta tener al menos una prueba de integración para cada llamada a platform channel.
-
Si algunos flujos no se pueden probar usando el paquete
integration_test(por ejemplo, si requieren interactuar con la UI nativa o mockear el estado del dispositivo), considera usar el paquetepatrolpara interacciones con la UI nativa, o escribir pruebas de "extremo a extremo" de las dos mitades usando pruebas unitarias:Pruebas unitarias nativas que configuran los mocks necesarios, luego llaman al punto de entrada del method channel con una llamada sintetizada y validan la respuesta del método.
Pruebas unitarias de Dart que mockean el platform channel, luego llaman a la API pública del plugin y validan los resultados.
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.