Beispieldaten generieren mit Bogus

Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!

Wenn Sie eine Anwendung entwickeln, können Sie die meisten Funktionen nur testen, wenn die zugrunde liegende Datenbank bereits Beispieldaten enthält. Ausnahmen sind beispielsweise Formulare zum Anlegen neuer Datensätze – hier legen Sie die Beispieldatenbank selbst an. In allen anderen Fällen kann es nicht schaden, ein paar Beispieldatensätze in den jeweiligen Tabellen bereitzustellen. Oft reicht es aus, das Anlegen einiger Elemente wie Kunden oder Produkte hart im Code zu verdrahten. Wenn Sie allerdings flexibel schnell für verschiedene Datenmodelle und Anwendungen Beispieldaten benötigen, reduzieren Sie den Aufwand zum Zusammenstellen der Beispieldaten zwar auf das einmalige Schreiben des Codes. Es macht aber auch keinen Spaß, sich dann Informationen wie Teststraße, Beispielfirma und Co. aus den Fingern zu saugen. Um dies zu automatisieren und gegebenenfalls auch größere Mengen an Beispieldaten zu generieren, gibt es spezielle Tools. Eine davon heißt Bogus – und diese stellen wir in diesem Artikel im Detail vor.

Für Menschen wie mich, die immer wieder frische Daten für die Beispiele für die Artikel und Bücher benötigen, ist ein Tool zum automatischen Generieren von Beispielcode natürlich Gold wert. Aber auch Sie können sich vermutlich eine Menge Arbeit sparen, wenn Sie die Tabellen Ihrer Anwendung vor dem Testen schnell mit passenden Beispieldaten füllen können.

Wie für die meisten Anwendungsfälle, die Sie mit Visual Studio abarbeiten, finden sich auch hier passende Erweiterungen im NuGet-Paket-Manager. Das Paket, das wir in diesem Artikel vorstellen wollen, heißt Bogus und bietet bereits in der kostenlosen Variante sehr viele verschiedene mögliche Generatoren für Daten unterschiedlichster Art an.

Um zuvor einmal die grundlegende Idee zu skizzieren: Wir gehen davon aus, dass Sie in der zu programmierenden Anwendung beispielsweise eine Tabelle namens Kunden verwenden, dessen Einträge im Entity Data Model der Anwendung jeweils in einem Element namens Kunde gespeichert werden. Das Tool, in diesem Fall Bogus, soll uns eine Möglichkeit bieten, die Eigenschaften neu erstellter Elemente des Typs Kunde mit Werten zu füllen.

Wenn Kunde also beispielsweise Eigenschaften wie Anrede, Vorname, Nachname, Strasse, PLZ und Ort enthält, dann müsste das Tool Funktionen bereitstellen, mit denen Werte für genau diese Felder erzeugt werden können und die nach dem Zufallsprinzip ausreichend neue Werte liefern.

Noch spannender wird es an der Stelle, wo wir verknüpfte Tabellen haben – zum Beispiel Kunden und Bestellungen. Im einem Entity Data Model haben wir dann zwei Klassen namens Kunde und Bestellung, deren Eigenschaften wir nacheinander füllen müssen. Allerdings müssen wir zuerst die Kunden erstellen und wenn wir in einer Bestellung den Kunden referenzieren, der diese Bestellung aufgegeben haben, müssen wir auf einen der zuvor erstellten Kunden verweisen. Auch diese Möglichkeit bietet das hier verwendete Tool Bogus.

Beispielanwendung

Um die Funktionen von Bogus schnell und komfortabel testen zu können, nutzen wir LINQPad5. Hier können wir Code schnell eingeben und ausführen, ohne immer direkt ein Projekt erstellen zu müssen. Wenn Sie LINQ-Pad5 geöffnet haben, sind zwei Schritte nötig: der Wechsel zu einem passenden Query-Typ, hier VB Program, und das Hinzufügen von Bogus zur Query.

Bogus zur Query hinzufügen

Um das Bogus-Paket zur Query hinzuzufügen, klicken Sie mit der rechten Maustaste auf den Registerreiter für die Query. Dort wählen Sie den Eintrag Query Properties… aus (siehe Bild 1).

Aufrufen der Query-Eigenschaften

Bild 1: Aufrufen der Query-Eigenschaften

Dies öffnet den Dialog Query Properties. Hier klicken Sie unten auf die Schaltfläche Add NuGet…, was den Dialog LINQPad NuGet Manager öffnet. Hier geben Sie im mittleren Bereich den Suchbegriff Bogus ein und klicken dann für den obersten Eintrag auf die Schaltfläche Add to Query (siehe Bild 2). Schließen Sie den Dialog, finden Sie den Eintrag Bogus nun im Dialog Query Properties im Bereich Additional Reference vor.

Hinzufügen des Pakets Bogus

Bild 2: Hinzufügen des Pakets Bogus

Beispielkunde erstellen

Der Rahmen für die ersten Experimente mit Bogus ist eine einfache Kundenklasse. Diese definieren Sie wie folgt unterhalb der in der LINQPad-Query vorgegebenen Methode Main:

 

Schreibe einen Kommentar