C# tips and tricks 32 - Generating test data for Unit testing and UI testing using Faker.Net & Bogus
Вставка
- Опубліковано 15 жов 2024
- Why do we need fake data
What is Faker.Net
Faker.Net code demo
What is Bogus
Bogus code demo
Why do we need fake data
Test data for unit testing
Test data for UI testing
Sample data for design purposes
Sample data for prototypes
Database seeding
What is Faker.Net
Generates fake data or dummy data
Generates more realistic data
Generates data like name, phone number, email, internet domains and many more.
Use the generated data for Proof of Concepts, Seeding the DB, Unit testing and UI Testing
What is Bogus
Generates sample data for classes
Generates more realistic data
Generates data like name, phone number, email, internet domains and many more.
Use the generated data for Proof of Concepts, Seeding the DB, Unit testing and UI Testing
Bogus generates data like
Addresses: ZipCode, City, Country, Latitude, etc.
Commerce: Department name, ProductName, ProductAdjective, Price, etc.
Company: CompanyName, CatchPhrase, Bs, etc.
Date: Past, Soon, Between, etc.
Finance: Account number, TransactionType, Currency, CreditCardNumber, etc.
Image URL: Random image, Animals image, Nature image, etc.
Internet: Email, DomainName, Ipv6, Password, etc.
Lorem: single word, Words, Sentence, Paragraphs, etc.
Name: FirstName, LastName, etc.
Rant: Random user review, etc.
System: FileName, MimeType, FileExt, etc.
Code :
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Name.First());
Console.WriteLine(Address.City());
Console.WriteLine("Buyers list");
foreach (var buyer in GetBuyers())
{
Console.WriteLine(buyer.FirstName+"\t"+buyer.LastName);
foreach (var vehicle in buyer.Vehicles)
{
Console.WriteLine($"\t{vehicle.Manufacturer.PadRight(15)}\t{vehicle.Model.PadRight(15)}\t{vehicle.Price}");
}
}
}
public static IEnumerable lessthanBuyer greaterthan GetBuyers()
{
Faker lessthan Vehicle greaterthan vehicleGenerator = new Faker lessthan Vehicle greaterthan ()
.RuleFor(vehicle =greaterthan vehicle.Manufacturer, bogus =greaterthan bogus.Vehicle.Manufacturer())
.RuleFor(vehicle =greaterthan vehicle.Model, bogus =greaterthan bogus.Vehicle.Model())
.RuleFor(vehicle =greaterthan vehicle.Price, bogus =greaterthan bogus.Finance.Amount());
Faker lessthan Buyer greaterthan buyerGenerator = new Faker lessthan Buyer greaterthan ()
.RuleFor(buyer =greaterthan buyer.FirstName, bogus =greaterthan bogus.Name.FirstName())
.RuleFor(buyer =greaterthan buyer.LastName, bogus =greaterthan bogus.Name.LastName())
.RuleFor(buyer =greaterthan buyer.Vehicles, bogus =greaterthan vehicleGenerator.Generate(5));
return buyerGenerator.Generate(4);
}
}
class Buyer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public List lessthan Vehicle greaterthan Vehicles { get; set; }
}
class Vehicle
{
public string Manufacturer { get; set; }
public string Model { get; set; }
public decimal Price { get; set; }
}