Mejores datos de prueba en Java con DataFaker

DataFaker es una biblioteca para Java que se puede usar para fabricar datos de prueba más aleatorios y realistas. Con más de 200 generadores aleatorios, es posible crear datos falsos para todo tipo de cosas, desde nombres, números e identificadores aleatorios, hasta datos de prueba para cosas como trabajos, direcciones, datos de productos o de artículos de stock, y generadores de fantasía basados en series, películas o libros, entre otras cosas.

Data Faker es una herramienta fantástica para generar datos de prueba realistas y variados, algo que todos hemos necesitado en algún momento para demos, tests o prácticas. En lugar de recurrir a nombres genéricos como Persona 1, Persona 2 o inventarnos datos al azar, esta biblioteca nos permite crear información mucho más creíble y diversa, evitando que nuestros ejemplos se vuelvan repetitivos o poco creíbles.

Esta biblioteca está basada en Java Faker, pero con muchas mejoras y una gran cantidad de generadores nuevos, más de 200, que cubren desde nombres y ciudades hasta elementos de la cultura popular que pueden darle un toque divertido a nuestros proyectos. Para instalarla, si usamos Maven, basta con añadir la dependencia en el pom.xml, y si usamos Gradle, simplemente agregamos la línea correspondiente en el bloque implementation de nuestro archivo .gradle o .gradle.kts.

Una vez instalada, crear un generador es tan sencillo como instanciar un objeto Faker:

Faker f = new Faker();

Con este objeto podemos acceder a múltiples generadores. Por ejemplo, para obtener un nombre y un apellido, usamos:

String nombre = f.name().firstName();
String apellido = f.name().lastName();
System.out.println(nombre + " " + apellido);

Esto nos dará nombres que, aunque aleatorios, son mucho más naturales que los típicos ejemplos. Sin embargo, por defecto, los nombres suelen generarse en inglés o en otro idioma, lo que puede no ser ideal si queremos datos en español. Para solucionar esto, podemos especificar la localización al crear el objeto Faker, usando la clase Locale de Java. Por ejemplo, para español:

Locale locale = Locale.forLanguageTag("es");
Faker f = new Faker(locale);

Esto hará que los datos generados estén en español, aunque hay que tener en cuenta que no todas las categorías están traducidas o adaptadas a todos los idiomas. Si queremos ser más específicos y generar datos para una región concreta, podemos usar códigos como "es_ES" para España, "es_MX" para México o "es_AR" para Argentina:

Locale localeArgentina = Locale.forLanguageTag("es_AR");
Faker f = new Faker(localeArgentina);

Así, los nombres y otros datos estarán adaptados a esa región, lo que añade un nivel extra de realismo.

Además de nombres, Data Faker ofrece generadores para países, trabajos, números y mucho más. Por ejemplo, para obtener una capital de país:

String capital = f.country().capital();
System.out.println(capital);

O para generar un puesto de trabajo:

String posicion = f.job().position();
System.out.println(posicion);

Aunque algunos generadores, como el de trabajos, pueden no estar completamente localizados y devolver datos en inglés, siguen siendo útiles para simular información variada.

En cuanto a números, Data Faker permite generar valores dentro de un rango específico, lo que es muy útil para IDs o cantidades:

int numero = f.number().numberBetween(100, 999);
System.out.println(numero);

Esto nos asegura que el número generado estará siempre dentro del rango deseado.

Una de las características más sorprendentes de esta biblioteca es la variedad de generadores temáticos que incluye. Podemos generar datos relacionados con gatos, con la saga de Star Wars, personajes de Los Simpsons, Star Trek, Stargate, Stranger Things, Super Mario, e incluso frases y expresiones de Chiquito de la Calzada. Esto no solo añade diversión a nuestras demos, sino que también puede ser útil para crear ejemplos más originales y atractivos.

Utilizar Data Faker no solo mejora la calidad visual y realista de nuestros datos de prueba, sino que también nos ayuda a detectar posibles problemas en nuestras aplicaciones. Por ejemplo, si un nombre generado es demasiado largo para un campo, podremos identificar y corregir ese fallo antes de que se convierta en un problema real.

En definitiva, incorporar esta biblioteca en nuestros proyectos Java nos permite crear datos de prueba mucho más ricos, variados y adaptados a nuestras necesidades, evitando la monotonía y aportando un toque profesional y divertido a nuestras demos y tests.

Lista de reproducción
  1. 1
    JDK vs JRE: ¿qué diferencia hay?
    6 minutos
  2. 2
    ¿Por qué ahora Java versiona tan rápido?
    7 minutos
  3. 3
    Instalar Java en Windows mediante Temurin
    7 minutos
  4. 4
    ¿Por qué hay tantos JDKs y cuál debo elegir? OpenJDK, OracleJDK, Temurin…
    10 minutos
  5. 5
    Cómo instalar y desinstalar el JDK de Java en macOS
    9 minutos
  6. 6
    ¿Qué es Lombok?
    9 minutos
  7. 7
    ¿Qué es sdkman? Guía de instalación y uso
    12 minutos
  8. 8
    Mejores datos de prueba en Java con DataFaker
    9 minutos
  9. 9
    Cómo programo Java sin IDE (y cómo puedes hacerlo tú)
    16 minutos