top of page

Baixe grátis nossos e-books

Explore o mundo da Engenharia de Software e Data de forma mais eficiente e acessível com nossos eBooks!

  • Foto do escritorJP

Como gerar massa de testes utilizando biblioteca Java Datafaker

Às vezes em nossos projetos temos que preencher objetos Java para testes unitários ou até mesmo criar um dump de banco de dados com dados aleatórios para testar uma característica específica e etc. Precisamos ser criativos tentando criar nomes, nomes de ruas, cidades ou documentos.


Existe uma biblioteca Java interessante e útil chamada Datafaker que permite criar dados aleatórios com um grande número de provedores.


Provedores são objetos baseados em um contexto, por exemplo:


Se você deseja gerar dados para o objeto person, existe um provedor específico para este contexto que irá gerar nome, sobrenome e etc.


Neste post vamos criar alguns exemplos usando Maven como gerenciador de dependências Java, mas a biblioteca também fornece suporte para projetos Gradle.


Maven

<dependency>
    <groupId>net.datafaker</groupId>
    <artifactId>datafaker</artifactId>
    <version>1.1.0</version>
</dependency>

Gerando Dados aleatórios


Vamos criar uma classe Java simples que contém algumas propriedades como nome, sobrenome, endereço, gênero musical favorito e comida.

public class RandomPerson {

    public String firstName;
    public String lastName;
    public String favoriteMusicGenre;
    public String favoriteFood;
    public String streetAddress;
    public String city;
    public String country;
    
    @Override
    public String toString() {
    
        return  "firstName=" + firstName + "\n" +
                "lastName=" + lastName + "\n" +
                "favoriteMusicGenre="+favoriteMusicGenre + "\n" +
                "favoriteFood=" + favoriteFood + "\n" +
                "streetAddress=" + streetAddress + "\n" +
                "city=" + city + "\n" +
                "country=" + country ;
    }
    
    static void print(RandomPerson randomPerson){
        System.out.println(
            randomPerson
        );
    }
}

No próximo passo, vamos preencher um objeto usando os provedores que citamos na primeira seção. Primeiramente, criamos um objeto chamado randomData do tipo Faker, pois é nesta classe que contém todos os provedores no exemplo abaixo.

public static void main(String[] args) {

    Faker randomData
            = new Faker();

    RandomPerson randomPerson
            = new RandomPerson();
            
    randomPerson.firstName
            = randomData.name().firstName();
            
    randomPerson.lastName
            = randomData.name().lastName();

    randomPerson.favoriteMusicGenre
            = randomData.music().genre();

    randomPerson.favoriteFood
            = randomData.food().dish();

    randomPerson.streetAddress
            = randomData.address().streetAddress();

    randomPerson.city
            = randomData.address().city();

    randomPerson.country
            = randomData.address().country();

    print(randomPerson);  
}

Após a execução, podemos ver os resultados como este no console:


Resultado


firstName=Dorthy

lastName=Jones

favoriteMusicGenre=Electronic

favoriteFood=Cauliflower Penne

streetAddress=7411 Darin Gateway

city=Gutkowskifort

country=Greece


Cada execução será um novo resultado porque os provedores são aleatórios. Outra funcionalidade interessante é que podemos configurar o Locale ao instanciar um objeto.

Faker randomData
        = new Faker(Locale.JAPANESE);

Veja os resultados com base no Local.JAPANESE:


Resultado


firstName=航

lastName=横山

favoriteMusicGenre=Non Music

favoriteFood=French Fries with Sausages

streetAddress=418 美桜Square

city=南斉藤区

country=Togo


 

Material de estudo


Se quer aprender mais sobre o assunto e alcançar um alto nível de conhecimento, recomendo fortemente a leitura do(s) seguinte(s) livro(s):


Unit Testing Principles, Practices, and Patterns: Effective Testing Styles, Patterns, and Reliable Automation for Unit Testing, Mocking, and Integration Testing with Examples in C# (Versão Inglês) é um livro que cobre Princípios, Padrões e Práticas de Testes unitários. Ensina a projetar e escrever testes que visam áreas-chave do seu código, incluindo o modelo de domínio. Neste guia escrito de forma clara, você aprenderá a desenvolver testes e conjuntos de testes de qualidade profissional e a integrar testes em todo o ciclo de vida do aplicativo.













Junit em Ação é um livro de testes popular que cobre técnicas como teste prático de seu código, usando técnicas de testes unitários e muito mais. É através da prática de testes que garantimos uma entrega de qualidade do software ao cliente final, garantindo a execução do Build e Deploy.













Mastering Unit Testing Using Mockito and JUnit (Versão Inglês) é um livro que cobre as práticas do JUnit usando uma das mais famosas bibliotecas de teste chamada Mockito. Este livro ensina como criar e manter testes unitários automatizados utilizando recursos avançados do JUnit com o framework Mockito, práticas de integração contínua (famoso CI) utilizando ferramentas de mercado como Jenkins junto com um dos maiores gerenciadores de dependências em projetos Java, o Maven. Para você que está começando nesse mundo, é uma excelente escolha.














Bom é isso, espero que tenham gostado!


















Posts recentes

Ver tudo
bottom of page