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


Larvel withCount mit Where Condition

November 18, 2021

Stellt Euch vor ihr habt ein Model Post mit einer Relation Comment. Auf der Übersichtsseite von Post möchtet ihr nur die Anzahl der Kommentare eines jeweiligen Post anzeigen. Dafür gibt es die echt hilfreiche Laravel Funktion withCount(). Post::withCount(‘comments’)->all(); Aber bei Comments kann es ja sein, dass manchen noch approved werden müssen. Diese müssen dann noch […]

Laravel Mailhog Docker

October 20, 2021

Letztens wurde ich gefragt, wie ich Mail bei Laravel teste. Ich meinte ich habe einen SMTP Server den ich nutzen kann. Da meinte er, dass wäre zwar okay aber man könnte sich damit auch eine valide Mailadresse verbrennen. Mit verbrennen meint der Kollege, dass sie global als SPAM Mailadresse angerechnet werden kann. Falls die Tests […]

Meine wichtigsten Artisan Commands

September 6, 2021

Als Laravel Entwickler braucht man sie ständig. Wenn man etwas länger Frontendarbeiten gemacht hat, kommt es schon mal vor, dass man etwas vergessen hat. Daher hier die Liste mit den häufigsten Artisan Commands: php artisan migrate:rollback –step=1 Ihr wollte eine oder x-beliebige Migrationen zurückspulen? Dann rollback und die Anzahl der Migrationssteps eingeben. php artisan migrate:refresh […]

Laravel – Slugs einrichten

September 2, 2021

Slugs machen die URLs Sprechender und damit auch SEO-(Freund)licher. Statt domain.de/posts/1 würde man mit domain.de/posts/mein-erster-blog-eintrag arbeiten. Um das in Laravel zu realisieren, bedient man sich in der Regel externer Bibliotheken. Einmal eine von Spartie und eine cviebrock. Man kann es natürlich aber auch selber machen. Die Bibliotheken sind hier aber vorzuziehen. Weil es ist keine […]

Laravel Blade Components

August 27, 2021

Componets – Aus VueJS kennen wir es und haben es bereits lieben gelernt. In Laravel können wir im Blade auch sehr dynamisch in Componenten arbeiten. Von Hause gibt uns Laravel Componets mit. Am Beispiel erklärt Stellen wir uns vor, wir wollen ein Blog erstellen. In der Übersichtsseite, sollen die Blogartikel untereinander gelistet werden. Wer ohne […]

Laravel Resource – Kurz mal erklärt

August 26, 2021

Nutzen wir zum Beispiel Larvel als Backend und beliefern das Frontend via api Route mit Daten, dann stellt sich manchmal die Frage, welche Daten braucht das Frontend eigentlich? Braucht man wirklich created_at oder updated_at mit auszuliefern? Sobald man sich so eine oder ähnliche Frage stellt wird es Zeit sich mal mit Laravel Resource auseinander zu […]