DEV Community

Cover image for Utilizar datos de prueba en Java con DataFaker
Jordi Ayala
Jordi Ayala

Posted on • Originally published at asjordi.dev

Utilizar datos de prueba en Java con DataFaker

DataFaker es una biblioteca para Java que permite generar datos de prueba de manera sencilla. Esto puede resultar útil en situaciones donde se necesitan datos para generar tests, alguna demostración o simplemente para llenar una base de datos con datos de prueba, y evitar tener que hacerlo manualmente. Esta biblioteca está basada en Java Faker (aunque esta tiene tiempo sin actualizarse) y posee más de 200 proveedores de datos diferentes, por lo que el tipo de datos que se pueden generar es muy variado.

Instalación

DataFaker se puede instalar utilizando Maven, Gradle o Ivy, para este caso se utilizará Maven, por lo que solo se debe agregar la siguiente dependencia al archivo pom.xml:

<dependency>
    <groupId>net.datafaker</groupId>
    <artifactId>datafaker</artifactId>
    <version>2.4.0</version>
</dependency>
Enter fullscreen mode Exit fullscreen mode

Uso

Para utilizar DataFaker, se debe crear una instancia de la clase DataFaker y luego se pueden utilizar los métodos de esta clase para generar los datos de prueba.

Faker f = new Faker();
Enter fullscreen mode Exit fullscreen mode

Por ejemplo, si se necesita un nombre y apellido se puede utilizar alguno de los métodos dentro de name():

var name = f.name().firstName();
var lastName = f.name().lastName();
System.out.println("Hello, my name is " + name + " " + lastName);

// Output
Hello, my name is Patsy Heller
Enter fullscreen mode Exit fullscreen mode

Si ejecutamos el código anterior un par de veces, podemos observar que los nombres generados son diferentes y están en un idioma diferente. Para hacer que los datos sean aún más realistas se puede especificar un parámetro Locale dentro del constructor de Faker de alguna de las siguientes maneras:

Faker f = new Faker(Locale.ENGLISH);

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

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

Faker f = new Faker(new Locale("es")); // Esto esta deprecado desde el JDK 19
Enter fullscreen mode Exit fullscreen mode

Utilizando cualquiera de las opciones anteriores los datos generados estarán en el idioma especificado, aunque depende de cada proveedor de datos si lo soporta o no. Para má información sobre los Locales se puede consultar la documentación oficial.

Para realizar un ejemplo más variado consideremos el siguiente record de tipo Person:

public record Person(Integer id, String firstName, String lastName, String username, String address, String job, String favoriteColor) { }
Enter fullscreen mode Exit fullscreen mode

Ahora se puede generar una lista de 10 personas con datos de prueba de la siguiente manera:

Faker f = new Faker(Locale.forLanguageTag("es-MX"));
List<Person> persons = new ArrayList<>();

for (int i = 0; i < 10; i++) {
    persons.add(
            new Person(
                    f.number().numberBetween(1, 1000),
                    f.name().firstName(),
                    f.name().lastName(),
                    f.internet().username(),
                    f.address().fullAddress(),
                    f.job().title(),
                    f.color().name()
            )
    );
}
Enter fullscreen mode Exit fullscreen mode

Finalmente, se puede imprimir la lista de personas generadas:

persons.forEach(System.out::println);
Enter fullscreen mode Exit fullscreen mode

De esta manera se pueden generar datos de prueba de manera sencilla y rápida utilizando DataFaker, para obtener más información sobre los proveedores de datos disponibles se puede consultar la documentación oficial.

Top comments (0)