Tipos de tests en Flutter

Tipos de test cases

En este artículo vamos a cubrir tres tipos de tests que todo developer debería implementar para poder dormir tranquilo cuando hace merge en la rama de PROD :)

Unit tests

Los unit tests evalúan una función, un método o una clase. El objetivo es verificar la corrección de una unidad lógica bajo ciertas condiciones. Todas las dependencias externas deberían ser mockeadas para aislar la pieza de código. Por lo tanto los tests unitarios no necesitan leer de disco, hacer peticiones de red o renderizar una interfaz de usuario.

flutter test
Algunos ejemplos de unit tests
that can fetch all news from network with a OK result and a list of one new is received on a far far away galaxy :)…
expect(mi valor actual, lo que espero)
  • equals(value)
  • isNotEmpty()
  • isNot(equals(value))
  • contains(value)
when(mockRepository.getNews()).thenAnswer((_) => MockRadiocoRepository.news());
Ejemplo de widget tests
WidgetsFlutterBinding.ensureInitialized();
expect(find.byKey(PageStorageKey<String("news_detail_container"),skipOffstage: true),findsOneWidget);
void main() {  
enableFlutterDriverExtension();
app.main();
overrideDependencies();
}
flutter drive --target=test_driver/app.dart
Ejemplo de test de UI/Driver
await FlutterDriver.connect();

Recapitulando

A continuación veremos las principales características de los diferentes test que hemos evaluado en este artículo.

  • muy rápidos en ejecución
  • estables
  • fáciles de implementar
  • no evalúan interacciones de usuario
  • muy rápidos en ejecución
  • estables
  • complejidad media de implementación
  • de alguna manera se pueden ver flows de usuario
  • muy lentos
  • poco estables
  • máxima complejidad de implementación
  • interacciones reales de usuario

Te pierdes lo bueno NO buscando el error
Te pierdes lo mejor

¡¡A hacer test!!

--

--

fernandosouto.dev

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store