IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

AutoFixture C# (Comment ça fonctionne pour les développeurs) | IronPDF

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 21 avril 2026

AutoFixture est une bibliothèque open-source pour .NET destinée à minimiser la phase 'Arrange' de l'écriture de tests unitaires, améliorant ainsi la gestion des tests. Son objectif principal est de permettre aux développeurs de se concentrer sur ce qu'ils testent, plutôt que sur le processus de configuration, en vous permettant de créer des graphes d'objets avec des données de test. Cet article explore comment AutoFixture peut être utilisé pour faciliter le développement piloté par les tests grâce à une génération de données de test efficace.

AutoFixture est une bibliothèque puissante en C# conçue pour rationaliser le processus de création de données de test pour les tests unitaires. Il aide les développeurs à éviter d'écrire du code de configuration répétitif en générant automatiquement des données pour les cas de test. Dans les tests unitaires, AutoFixture fournit une approche simplifiée pour générer des données de test, assurant que chaque test unitaire est exécuté avec des entrées variées et réalistes. AutoFixture rend les tests en C# plus efficaces en générant automatiquement des données de test, réduisant le besoin de configurations manuelles.

AutoFixture C# (Comment cela fonctionne pour les développeurs) : Figure 1 - AutoFixture

Installer et configurer AutoFixture

AutoFixture est disponible en tant que package NuGet et peut être installé en utilisant la console du gestionnaire de packages NuGet ou l'ajout de package .NET dans l'interface utilisateur du gestionnaire de packages NuGet de Visual Studio.

PM > Install-Package AutoFixture

NuGet téléchargera et installera la dernière version de AutoFixture et ses dépendances dans votre projet.

Exemple de création de données de test pour une classe

Supposons que nous ayons une classe employé simple avec des propriétés comme FirstName, LastName et Age. Au lieu de créer manuellement des instances de cette classe dans nos tests unitaires, nous pouvons tirer parti de AutoFixture pour générer des données aléatoires pour nous.

public class Employee
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }

    public Employee(string firstName, string lastName, int age)
    {
        FirstName = firstName;
        LastName = lastName;
        Age = age;
    }

    public string GetFullName() => $"{FirstName} {LastName}";
}

Description du code

La classe Employee encapsule les détails essentiels d'un employé, y compris son prénom, nom de famille et âge, représentés respectivement par les propriétés FirstName, LastName et Age. Son constructeur facilite l'instanciation d'un objet employé en acceptant ces détails en tant que paramètres et en les assignant aux propriétés correspondantes. De plus, la méthode GetFullName concatène le prénom et le nom de famille de l'employé, renvoyant le nom complet sous forme de chaîne.

Configurer le code pour notre scénario de test

Ensuite, nous allons créer une classe de test pour tester la classe Employee :

using AutoFixture;

public class EmployeeTests
{
    private readonly IFixture _fixture;

    public EmployeeTests()
    {
        // Using AutoFixture's Fixture to create test data
        _fixture = new Fixture();
    }
}

Description du code

Ce fragment de code intègre AutoFixture dans le test unitaire pour la classe Employee. En important l'espace de noms AutoFixture, les développeurs accèdent à la fonctionnalité de génération de données. Le champ _fixture, initialisé avec une nouvelle instance de Fixture, simplifie la création de données de test. Cette configuration améliore l'efficacité et la fiabilité des tests pour une couverture complète de la classe Employee.

Exemple 1 : Validation des valeurs des objets de test Employee

[Fact]
public void Employee_ShouldHaveValidValues()
{
    // Arrange
    var firstName = _fixture.Create<string>();
    var lastName = _fixture.Create<string>();
    var age = _fixture.Create<int>();

    // Act
    var employee = new Employee(firstName, lastName, age);

    // Assert
    Assert.Equal(firstName, employee.FirstName);
    Assert.Equal(lastName, employee.LastName);
    Assert.Equal(age, employee.Age);
}

Description du code

La méthode de test Employee_ShouldHaveValidValues valide que la classe Employee initialise correctement ses propriétés avec les valeurs fournies. En utilisant un fixture de test pour générer des données aléatoires pour FirstName, LastName et Age, le test crée une instance de Employee. Il confirme ensuite que les propriétés FirstName, LastName et Age de l'objet Employee correspondent aux valeurs générées, garantissant que le constructeur définit ces propriétés avec précision.

Exemple 2 : Validation d'Employee lorsque le constructeur est invoqué

[Fact]
public void CreateEmployee_ValidData_ReturnsEmployeeObject()
{
    // Arrange
    var employee = _fixture.Create<Employee>();

    // Act 
    // Assert
    Assert.NotNull(employee);
    Assert.False(string.IsNullOrEmpty(employee.FirstName));
    Assert.NotNull(employee.LastName);
    Assert.True(employee.Age > 0);
}

Description du code

Cette méthode de test comprend des assertions qui valident si les propriétés d'un objet Employee correspondent à des valeurs générées aléatoirement. Elle vérifie si les propriétés du type string, FirstName et LastName, et int, Age sont correctement définies et valides. Toute assertion échouée signale une discordance entre les valeurs attendues et les valeurs aléatoires générées pour les détails de l'employé.

AutoFixture C# (Comment cela fonctionne pour les développeurs) : Figure 2 - Test d'unité des données employé valable

Présentation d'IronPDF

IronPDF C# PDF Library est une bibliothèque PDF C# robuste développée par Iron Software qui facilite la lecture du texte PDF et la création de documents PDF utilisant HTML. Cet outil polyvalent permet la conversion de documents faciles à formater, avec des informations de style, en PDF de haute qualité. Avec IronPDF, générer des PDFs à partir de texte HTML est un processus transparent, permettant aux utilisateurs de tirer du contenu HTML depuis des URL et de le transformer en fichiers PDF bien structurés. Cette capacité fait de IronPDF un outil essentiel pour les développeurs cherchant à automatiser et simplifier la création de documents PDF professionnels directement à partir de contenu web.

AutoFixture C# (Comment cela fonctionne pour les développeurs) : Figure 3 - IronPDF

Installer IronPDF

Ouvrez la console du gestionnaire de packages NuGet, et exécutez la commande suivante:

PM > Install-Package IronPdf

Exemple de code utilisant les fonctionnalités de AutoFixture avec IronPDF

Voici un exemple démontrant l'utilisation de AutoFixture aux côtés de IronPDF pour générer un PDF des données des employés :

using DemoAutofixture;
using IronPdf;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class EmployeePdfGenerator
{
    private readonly Fixture _fixture;

    public EmployeePdfGenerator()
    {
        _fixture = new Fixture();
    }

    public List<Employee> GenerateEmployees(int count)
    {
        return _fixture.CreateMany<Employee>(count).ToList();
    }

    public void GeneratePdf(List<Employee> employees, string filePath)
    {
        IronPdf.License.LicenseKey = "Your-License-Key-Here";
        var renderer = new ChromePdfRenderer();
        string htmlContent = GenerateHtml(employees);

        try
        {
            renderer.RenderHtmlAsPdf(htmlContent).SaveAs(filePath);
            Console.WriteLine("PDF Created Successfully!");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error generating PDF: {ex.Message}");
        }
    }

    private string GenerateHtml(List<Employee> employees)
    {
        StringBuilder htmlBuilder = new StringBuilder();
        htmlBuilder.Append("<!DOCTYPE html><html><head><title>Employee List</title></head><body><h1>Employee List</h1><ul>");

        foreach (var employee in employees)
        {
            htmlBuilder.Append($"<li>{employee.GetFullName()} - Age: {employee.Age}</li>");
        }

        htmlBuilder.Append("</ul></body></html>");
        return htmlBuilder.ToString();
    }
}

Pour utiliser cette classe, vous instancieriez EmployeePdfGenerator, généreriez une liste d'employés, puis appelleriez GeneratePdf :

List<Employee> employees = new()
{
    new Employee("John", "Smith", 32),
    new Employee("Emily", "Davis", 18),
    new Employee("David", "Brown", 24),
    new Employee("Jane", "Doe", 16),
    new Employee("Michael", "Johnson", 49),
};

EmployeePdfGenerator pdfGenerator = new();
pdfGenerator.GeneratePdf(employees, "EmployeeList.pdf");

AutoFixture C# (Comment cela fonctionne pour les développeurs) : Figure 4 - Autofixture avec sortie IronPDF

Description du code

Le code C# fourni utilise la bibliothèque IronPDF pour générer un document PDF listant les employés et leurs âges. Elle définit une classe EmployeePdfGenerator qui inclut la méthode GeneratePdf, qui prend une liste d'objets Employee et un chemin de fichier. Interne, elle construit du contenu HTML via la méthode GenerateHtml, puis utilise la classe HtmlToPdf d'IronPDF pour rendre cet HTML sous forme de PDF, enregistré au chemin de fichier spécifié. Les améliorations incluent l'utilisation de StringBuilder pour la génération HTML et l'ajout d'une gestion des erreurs basique pour la génération de PDF et l'enregistrement de fichiers.

Écriture d'une méthode de test

Dans la configuration ci-dessous, AutoFixture est utilisé pour créer des instances de la classe Employee, permettant la génération de données aléatoires pour les tests. IronPDF est employé pour convertir facilement le contenu HTML, y compris les informations de l'employé, en format PDF. La classe EmployeePdfGenerator orchestre ces processus, gérant efficacement la génération de données et la conversion en PDF. Pendant ce temps, la classe de test XUnit EmployeePdfGeneratorTests garantit le bon fonctionnement de la génération de PDF à travers des tests rigoureux. Cette approche intégrée simplifie la génération et la documentation des données des employés, assurant la robustesse et la fiabilité du processus de génération de PDF.

using System.IO;
using Xunit;

public class EmployeePdfGeneratorTests
{
    [Fact]
    public void GeneratePdf_GeneratesPdfFile()
    {
        // Arrange
        var generator = new EmployeePdfGenerator();
        var employees = generator.GenerateEmployees(5);
        string filePath = "EmployeeList.pdf";

        // Act
        generator.GeneratePdf(employees, filePath);

        // Assert
        Assert.True(File.Exists(filePath));
    }
}

Ici, la classe EmployeePdfGeneratorTests contient un cas de test qui valide la création d'un fichier PDF au chemin de fichier spécifié, assurant que la méthode GeneratePdf fonctionne correctement.

AutoFixture C# (Comment cela fonctionne pour les développeurs) : Figure 5 - AutoFixture C#

Conclusion

AutoFixture simplifie la phase 'Arrange' de l'écriture de tests unitaires en .NET, offrant aux développeurs un moyen de se concentrer sur les cas de test plutôt que sur les complexités de configuration. Il simplifie le processus de test unitaire, assurant des entrées variées et réalistes en générant automatiquement des données de test. En conjonction avec les Informations de Licence IronPDF, il fournit une combinaison puissante pour une utilisation continue et un support.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $