Laravel Faker – Kurz mal erklärt

Alle nutzen anscheint Faker. Es gab mal einen ehemaligen US Präsidenten der meinte die Washington Post verbreitet Fake(r) News. Er selbest wiederum hatte sich eine Faker API in sein damals noch nicht gesperrten Twitter Account reinlegen lassen. Fakes sind in der Geschichte der Menschheit immer präsent gewesen und nicht erst seit 2016. Aber zurück zum Tec Stack.

Der Faker ist eine externe Bibliothek des Laravel Werks Package. Mit dem Faker kann man sich Testdaten in die Datenbank schreiben lassen. Testdaten die man benötigt um seine Software zu testeb. Ich selbst erinnere mich zu gut, wie ich in meinen Anfängen als Dev über einen MySQL Client meine Testdaten immer eingehackt habe. Das war einfach müßig. Daher hatte ich bereits kurze Zeit später ein Script dass mir feste Datensätze in die Datenbank importierte. Damals kannte ich Faker noch nicht. Lag auch daran das ich als PHP Entwickler anfing. In anderen Sprachen war das schon ein alter Hut.

Wie geht man vor?

Schritt 1 – Faker Klasse erstellen

Wir wollen unsere User Tabelle in der DB auffüllen. Das machen wir über das Laravel Konsolenprogramm artisan.

php artisan make:factory UserFactory  
// oder
php artisan make:factory UserFactory --model=User 

Schritt 2 – Faker definition schreiben

Die neue Faker Klasse wird in Ihrem Verzeichnis database/factories abgelegt. Mit der Option –model gibt man Artisan mit, mit welchem Model er die neue Fakerklasse assoziieren soll. Somit ist das Model gleich in der Klasse griffbereit, statt es noch mit use App\Models\xxx in die Klasse zu holen. Also am besten immer gleich mit.

Dann tragen wir in dem Array in der Klassenmethode definition() unsere Datenbank Keys ein. Die Values werden mit Faker gesetzt.

public function definition()
{
    return [
        'name' => $this->faker->name,
        'address' => $this->faker->address,
    ];
} 

Für alle möglichen Fakemöglichkeiten schaut mal in das GitHub Repository: https://github.com/fzaninotto/Faker.

Schritt 3 – Landessprache einstellen (Localisation)

Jetzt müssen wir nur noch den Laraval Faker auf Deutsch stellen. Dazu gehen wir in die app.php Datei im Config Ordner. Ihr werdet sehen, dass dirt bereits ein faker local gesetzt ist. Standardmäßig auf en_EN. Das ändern wir in unsere gewünschte Sprache. In meinem Fall jetzt de_DE.

'faker_locale' => 'fr_FR',

Schritt 4 – Testen ob der Faker funktioniert

Nun testen wir, ob der Faker auch wirklich funktioniert. Dazu gehen wir we folgt vor:

 php artisan tinker
 Owner::factory()->count(1)->create() 
Tinker Output
Tinker Output

Und das war es auch schon. In der Testklasse triggerst Du den gewünschten Faker in der SetUp Methode an und verfügst dann in deiner Testdatenbank randomisierte Datensätze. Die nach dem Test automatisch wieder gelöscht werden.


Leave a Comment

Your email address will not be published. Required fields are marked *

*

*

Empfholende Artikel


Laravel Test möglicher Fehler – Unknown formatter “name”

April 17, 2021

Falls Du gerade Dein Test geschrieben hast und du deinen Test mit php artisan test startest kann es sein, dass Du folgende Fehlermeldung erhalten kannst: Was ist passiert? Wahrscheinlich hast Du in deiner seUp() Methode oder in deiner Testfunktion ein factory eingebaut. Zum Beispiel Da Laravel einige Optimierungen vorgenommen hat, kannst Du nicht die Standard […]

Eine einzelne Migration in Laravel ausführen

March 25, 2021

Aus unterschiedlichen Gründen kann es sein, dass man in einem Laravel Projekt eine spezielle Migration ausführen möchte. Zum Beispiel die zuletzt erstellte Migration. Ein anscheinend häufiger Grund für dieses Vorgehen könnte sein, dass in einer vorherigen Migrationsdatei ein Fehler auftreten würde. Und da Laravel die Migrationsdateien von der ältestesten zur jüngsten Migration abarbeitet, würde man […]

Laravel – Service, Repository Pattern

February 6, 2021

Ein wichtiger Baustein der Softwareentwicklung ist die Softwarearchitektur. Ab einer bestimmten Größe steht und fällt, meines Erachtens, ein Projekt mit der Softwarearchitektur. Damit ist nicht gemeint, das prozedural geschriebener Code perse schlecht ist. Im Gegenteil. In der Vergangenheit habe ich mit prozedural geschriebenen Code gute Software gebaut die teilweise bis heute läuft. Ich erinnere mich […]

Laravel Model kurz mal erklärt

January 26, 2021

Heute mal leichte Kost. Laravel Model. Was ist das und was stellt man damit an, wie erstellt man ein Model und was kann es so alles. Genug der langen Worte, fangen wir an! Was ist ein Model? Dafür blicken wir auf ein DesignPattern der Programmierung und zwar dem MVC Muster. MVC steht für Model, View […]

JWT in Laravel einrichten – Kurz mal erklärt

January 19, 2021

Ein sehr großes Topic vor beginn einer neuen Applikation ist die Authentifizierung. Bei der Hypoport AG in Berlin wurde bei einem Projekt ein ganzer Monat mit mehreren Entwicklerteams das Thema Login geplant. In anderen Projekten, die sicher laufen sollen, verhält sich das ähnlich. Deswegen sollte das Thema von Anfang an immer gut durchdacht sein. Erspart […]

Laravel config Datei anlegen

December 1, 2020

Ich musste mal bei einer bestehenden Laravel Installation eine Paypal Integration bei einem Kunden vornehmen. Nebenbei bemerkt möchte ich das mal loswerden. Paypal hat eine schreckliche Dokumentation. Sie ist überhaupt nicht intuitiv. Aber das ist überhaupt ein anderes Thema. Ich installierte im Projekt über den Composer die Paypal SDK: Zusätzlich legte ich mir einen neuen […]