DEV Community

Juarez Júnior for Develop4Us

Posted on • Edited on

Gerando Dados de Teste Automatizados com AutoFixture

AutoFixture é uma biblioteca poderosa para gerar dados de teste automaticamente em .NET. Ela simplifica a criação de objetos de teste, eliminando a necessidade de escrever código manual para inicializar cada propriedade. O AutoFixture cria instâncias de objetos com dados aleatórios, tornando os testes mais flexíveis e permitindo testar cenários com dados variados. Neste exemplo, veremos como usar o AutoFixture para gerar objetos complexos automaticamente em um teste unitário.

Bibliotecas:

Para usar a biblioteca AutoFixture, instale o seguinte pacote NuGet no seu projeto:

Install-Package AutoFixture
Enter fullscreen mode Exit fullscreen mode

Código de Exemplo:

using AutoFixture;
using System;

namespace AutoFixtureExemplo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Criando uma instância do gerador AutoFixture
            var fixture = new Fixture();

            // Gerando uma instância preenchida da classe Pedido
            var pedido = fixture.Create<Pedido>();

            // Exibindo os dados gerados automaticamente
            Console.WriteLine($"Pedido Id: {pedido.Id}, Valor: {pedido.ValorTotal}, Cliente: {pedido.Cliente.Nome}");
        }
    }

    // Classe Pedido
    public class Pedido
    {
        public int Id { get; set; }
        public decimal ValorTotal { get; set; }
        public Cliente Cliente { get; set; }
    }

    // Classe Cliente
    public class Cliente
    {
        public string Nome { get; set; }
        public string Email { get; set; }
    }
}
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, utilizamos o AutoFixture para gerar uma instância da classe Pedido, que contém uma referência a um objeto da classe Cliente. A biblioteca gera dados aleatórios para todas as propriedades automaticamente, incluindo objetos aninhados, como o Cliente. O resultado é exibido no console com os valores gerados dinamicamente. Isso facilita muito a criação de dados de teste complexos em cenários de testes unitários.

Conclusão:

O AutoFixture simplifica a criação de dados de teste, tornando os testes unitários mais robustos e flexíveis. Ele automatiza a geração de dados, economizando tempo ao evitar a necessidade de inicializar manualmente cada objeto. Essa ferramenta é ideal para testes que precisam de uma variedade de dados em diferentes cenários.

Código fonte: GitHub

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay