Faker.Net ist eine Open‑Source‑Bibliothek zur Generierung von simulierten Testdaten für .NET / C#. Inspiriert vom Ruby‑Ökosystem Faker löst sie das Problem fehlender großer Mengen realitätsnaher Testdaten bei Debugging, Datenbankinitialisierung und Komponententests.
Projekt‑Repository:https://github.com/jonwingfield/Faker.Net
Schnelles Erzeugen unterschiedlicher geschäftsnaher Beispieldaten, gängige Datentypen:
- Personendaten: Vor‑ und Nachname, Geschlecht, Telefonnummer, E‑Mail‑Adresse, Personalausweisnummer
- Geografische Daten: Bundesland‑Stadt, vollständige Anschrift, PLZ
- Geschäftsdaten: Firmenname, Berufsbezeichnung, Textausschnitt, Datum‑Uhrzeit
- Netzwerkdaten: IP‑Adresse, URL, Benutzername
Füge hunderte Testdatensätze mit unterschiedlichen Namen, Geschlechtern und Kontaktinformationen in Benutzertabellen ein – ganz ohne manuelle Eingabe.
NuGet‑Paket
Install-Package Faker.NetCode-Sprache: CSS (css)
Oder über die Befehlszeile
dotnet add package Faker.NetCode-Sprache: CSS (css)
Code‑Beispiele
using Faker;
// Vollen Namen generieren
string fullName = Name.FullName();
// Telefonnummer generieren
string phone = Phone.Number();
// E‑Mail‑Adresse generieren
string email = Internet.Email();
// Vollständige Anschrift generieren
string address = Address.FullAddress();Code-Sprache: JavaScript (javascript)
Beispiel für Massendatenerzeugung
// Schleife zum Erstellen von 10 Testbenutzer‑Einträgen
var userList = new List<User>();
for (int i = 0; i < 10; i++)
{
userList.Add(new User()
{
Name = Name.FullName(),
Phone = Phone.Number(),
Email = Internet.Email(),
Address = Address.FullAddress()
});
}Code-Sprache: HTML, XML (xml)
Zufällige Namen erzeugen
Konsolen‑Anwendungsbeispiel
static void Main(string[] args)
{
// 100 zufällige englische vollständige Namen ausgeben
for (int i = 0; i < 100; i++)
{
Console.WriteLine(Name.GetName());
}
Console.ReadKey();
}Code-Sprache: JavaScript (javascript)
Ausgabebeispiel: Namen wie Bonnie Eichmann oder Adrien Crooks. Teilweise mit Anrede (Miss, Mrs) oder akademischen Nachsätzen (PhD, IV).
Analyse der internen Implementierung
public static class Name
{
public static string GetName()
{
// Zufällige Ganzzahl von 0 bis 9 erzeugen
switch (FakerRandom.Rand.Next(10))
{
// 10 % Wahrscheinlichkeit: Anrede + Vorname + Nachname (Miss Deontae Mante)
case 0:
return GetPrefix() + " " + GetFirstName() + " " + GetLastName();
// 10 % Wahrscheinlichkeit: Vorname + Nachname + Zusatz (Haskell Morissette PhD)
case 1:
return GetFirstName() + " " + GetLastName() + " " + GetSuffix();
// Übrige 80 %: Standard‑Format Vorname + Nachname (Adrien Crooks)
default:
return GetFirstName() + " " + GetLastName();
}
}
// Zufällige Auswahl eines Vornamens aus interner Liste
public static string GetFirstName()
{
return FIRST_NAMES.Rand();
}
}Code-Sprache: PHP (php)
Einführung