>  기사  >  백엔드 개발  >  Bogus를 사용하여 C#에서 시뮬레이션된 데이터를 만드는 방법

Bogus를 사용하여 C#에서 시뮬레이션된 데이터를 만드는 방법

little bottle
little bottle앞으로
2019-04-29 11:36:413799검색

Bogus, C# 기반의 간단한 데이터 생성기. Bogus를 사용하여 시뮬레이션 데이터를 생성하려면 규칙을 정의하고 데이터를 생성하기만 하면 됩니다. 그렇게 간단합니다. 그리고 Bogus는 고정된 데이터를 생성하거나 변경되는 데이터를 생성할 수 있습니다. 따라서 데이터를 얻은 후에는 이를 json, xml, 데이터베이스 또는 텍스트 파일 등 원하는 형식으로 직렬화할 수 있습니다.

시뮬레이션 데이터 생성

시뮬레이션 데이터를 생성하려면 먼저 시뮬레이션 데이터에 해당하는 엔터티 클래스를 생성해야 합니다. 여기에서 명령줄 프로그램을 만들고 두 개의 클래스를 추가할 수 있습니다.

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; }
}
public class Order
{
    public Guid Id { get; set; }
    public DateTime Date { get; set; }
    public Decimal OrderValue { get; set; }
    public bool Shipped { get; set; }
}

위의 두 엔터티 클래스를 생성한 후 웨어하우스를 추가하여 시뮬레이션된 데이터를 얻을 수 있습니다. Bogus를 사용하려면 Nuget을 사용하여 프로젝트에 Bogus 라이브러리를 추가할 수 있습니다.

Install-Package Bogus

관련 튜토리얼: C# 비디오 튜토리얼

이제 시뮬레이션 데이터를 얻기 위해 웨어하우징 클래스를 추가할 수 있습니다. 여기서는 SampleCustomerRepository 클래스를 추가하고 다음 메서드를 추가합니다. SampleCustomerRepository类,并加入以下方法。

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);
}

这里的第三行代码,我们为Randomizer.Seed属性指定一个固定的随机种子,因此每次生成的数据都是一样的。如果你不希望每次都生成固定的数据,你可以去掉这行代码。

这里我们为订单和客户数据的生成定义了规则,然后我们调用了Generate方法来生成模拟数据。就是这么简单。

如上所见,Bogus提供了许多类来生成数据。例如Company类可以用来生成公司模拟数据,例如公司名称。你可以使用这些生成的数据作为你程序的模拟数据,这些数据有3种使用场景

  • 单元测试的模拟测试数据
  • 设计阶段的模拟数据
  • 原型的模拟数据

但是我确信,你能发现更多的使用场景。

这里为了使用这些数据,你可以在Main方法中加入以下代码

static void Main(string[] args)
{
    var repository = new SampleCustomerRepository();
    var customers = repository.GetCustomers();
    Console.WriteLine(JsonConvert.SerializeObject(customers, 
        Formatting.Indented));
}

这里我们将模拟数据转换成了Json字符串,所以这里你需要添加对Newtonsoft.Jsonrrreee

여기 코드의 세 번째 줄에서는 Randomizer.Seed 속성에 고정된 무작위 시드를 지정하므로 생성되는 데이터는 매번 동일합니다. 매번 고정된 데이터를 생성하지 않으려면 이 코드 줄을 제거하면 됩니다. Bogus를 사용하여 C#에서 시뮬레이션된 데이터를 만드는 방법

여기에서는 주문 및 고객 데이터 생성 규칙을 정의한 다음 Generate 메서드를 호출하여 시뮬레이션 데이터를 생성합니다. 그렇게 간단합니다.

🎜위에서 볼 수 있듯이 Bogus는 데이터 생성을 위한 다양한 클래스를 제공합니다. 예를 들어 Company 클래스를 사용하여 회사 이름과 같은 회사 시뮬레이션 데이터를 생성할 수 있습니다. 생성된 데이터를 프로그램의 시뮬레이션 데이터로 사용할 수 있습니다. 이 데이터에는 세 가지 사용 시나리오가 있습니다.🎜
  • 단위 테스트를 위한 시뮬레이션 테스트 데이터
  • 설계 단계를 위한 시뮬레이션 데이터
  • 프로토타입 시뮬레이션 데이터
🎜하지만 더 많은 사용 시나리오를 찾을 수 있다고 확신합니다. 🎜🎜여기에서 이러한 데이터를 사용하려면 Main 메서드에 다음 코드를 추가하면 됩니다🎜rrreee🎜여기에서는 시뮬레이션 데이터를 Json 문자열로 변환하므로 여기에 Newtonsoft.Json 라이브러리에 대한 참조입니다. 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다. 🎜🎜🎜🎜🎜위에서 볼 수 있듯이 프로그램은 각 고객의 모든 주문 정보가 포함된 고객 데이터 세트를 생성합니다. 🎜

위 내용은 Bogus를 사용하여 C#에서 시뮬레이션된 데이터를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제