Maison  >  Article  >  développement back-end  >  Comment utiliser Bogus pour créer des données simulées en C#

Comment utiliser Bogus pour créer des données simulées en C#

little bottle
little bottleavant
2019-04-29 11:36:413799parcourir

Bogus, un générateur de données simple basé sur C#. Pour utiliser Bogus pour générer des données de simulation, il vous suffit de définir les règles et de générer des données, c'est aussi simple que cela. Et Bogus peut générer des données fixes ou des données changeantes. Ainsi, une fois que vous obtenez les données, vous pouvez les sérialiser dans le format souhaité : json, xml, base de données ou fichier texte.

Générer des données de simulation

Afin de générer des données de simulation, nous devons d'abord créer la classe d'entité correspondante pour les données de simulation. Ici, nous pouvons créer un programme en ligne de commande et ajouter deux classes.

public class Customer
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public string City { get; set; }
    public string Country { get; set; }
    public string ZipCode { get; set; }
    public string Phone { get; set; }
    public string Email { get; set; }
    public string ContactName { get; set; }
    public IEnumerable<Order> Orders { get; set; }
}
rrree

Après avoir créé les deux classes d'entités ci-dessus, vous pouvez ajouter un entrepôt pour obtenir des données simulées. Pour utiliser Bogus, vous pouvez utiliser Nuget pour ajouter la bibliothèque Bogus à votre projet.

Install-Package Bogus

Tutoriels associés : Tutoriel vidéo C#

Nous pouvons maintenant ajouter une classe d'entreposage Obtenez une simulation. données. Ici, nous ajoutons une classe SampleCustomerRepository et ajoutons les méthodes suivantes.

public class Order
{
    public Guid Id { get; set; }
    public DateTime Date { get; set; }
    public Decimal OrderValue { get; set; }
    public bool Shipped { get; set; }
}

Dans la troisième ligne de code ici, nous spécifions une graine aléatoire fixe pour l'attribut Randomizer.Seed, donc les données générées sont les mêmes à chaque fois. Si vous ne souhaitez pas générer des données fixes à chaque fois, vous pouvez supprimer cette ligne de code.

Ici, nous définissons des règles pour la génération des données de commande et des clients, puis nous appelons la méthode Generate pour générer des données de simulation. C'est aussi simple que cela.

Comme vu ci-dessus, Bogus propose de nombreuses classes pour générer des données. Par exemple, la classe Company peut être utilisée pour générer des données de simulation d'entreprise, telles que le nom de l'entreprise. Vous pouvez utiliser ces données générées comme données de simulation pour votre programme. Il existe 3 scénarios d'utilisation de ces données

  • Données de test de simulation pour les tests unitaires
  • Données de simulation pour la phase de conception
  • Données de simulation du prototype

Mais je suis sûr que vous pouvez trouver plus de scénarios d'utilisation.

Afin d'utiliser ces données ici, vous pouvez ajouter le code suivant dans la méthode Main

public IEnumerable<Customer> GetCustomers()
{
    Randomizer.Seed = new Random(123456);
    var ordergenerator = new Faker<Order>()
        .RuleFor(o => o.Id, Guid.NewGuid)
        .RuleFor(o => o.Date, f => f.Date.Past(3))
        .RuleFor(o => o.OrderValue, f => f.Finance.Amount(0, 10000))
        .RuleFor(o => o.Shipped, f => f.Random.Bool(0.9f));
    var customerGenerator = new Faker<Customer>()
        .RuleFor(c => c.Id, Guid.NewGuid())
        .RuleFor(c => c.Name, f => f.Company.CompanyName())
        .RuleFor(c => c.Address, f => f.Address.FullAddress())
        .RuleFor(c => c.City, f => f.Address.City())
        .RuleFor(c => c.Country, f => f.Address.Country())
        .RuleFor(c => c.ZipCode, f => f.Address.ZipCode())
        .RuleFor(c => c.Phone, f => f.Phone.PhoneNumber())
        .RuleFor(c => c.Email, f => f.Internet.Email())
        .RuleFor(c => c.ContactName, (f, c) => f.Name.FullName())
        .RuleFor(c => c.Orders, f => ordergenerator.Generate(f.Random.Number(10)).ToList());
    return customerGenerator.Generate(100);
}

Ici, nous convertissons les données de simulation en une chaîne Json, vous devez donc ici ajouter le Newtonsoft.Json Référence à la bibliothèque. Après avoir exécuté le programme, vous obtiendrez les résultats suivants.

Comment utiliser Bogus pour créer des données simulées en C#

Comme vous pouvez le voir ci-dessus, le programme génère un ensemble de données client avec toutes les informations de commande pour chaque client.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer