Générer des données aléatoires avec Faker

Clavier avec le mot FAKE

Lorsque l’on développe une application, on a souvent besoin de générer des données aléatoires. D’autant plus si l’on fait des tests automatiques. Le but d’utiliser des données aléatoires est de tester un plus grand nombre de cas. Cependant, le faire à la main demande beaucoup de temps. C’est dans ce but que le framework Faker a été créé.

Faker est un framework PHP développé par Francois Zaninotto. Il permet de générer de fausses données pour nous. Ces données peuvent très bien être des chaînes de caractères aléatoires comme des faux numéros de téléphone.

Installation

Pour installer le framework il vous faut utiliser Composer et taper cette commande :

composer require fzaninotto/faker

Utilisations

Dans votre code, il vous suffit d’importer le framework et de créer un objet Faker.

<?php

require_once 'vendor/autoload.php';

$faker = Faker\Factory::create();

Les utilisations sont multiples. On peut par exemple remplir une base de données avec des valeurs générées. Mais aussi pour couvrir un maximum de caractères spéciaux dans un formulaire ce qui nous permettra de générer des erreurs que l’on n’aurait pas forcément trouvées à la main.

Un autre aspect de Faker est que l’on va pouvoir générer ces données selon la langue ou le pays. Par exemple, si l’on veut générer des adresses , on peut très bien lui dire de me donner une adresse française ou anglaise.

Quelques exemples

Par défaut Faker est en ‘en_US’, mais vous pouvez le changer lors dans la création de l’objet Faker. Par exemple, si vous le voulez en français :

$faker = Faker\Factory::create('fr_FR');

Générer une adresse :

$faker->addres(); // '657 Beahan Shoals Lake Abbeychester, MI 50207-8838'

Générer le nom d’une personne de sexe masculin :

$faker->name('male');   // 'Dr. Zane Stroman''

Vous pourrez retrouver toutes les informations sur le répertoire Git Hub du projet.

Faker sera votre meilleur allié pour faire des tests automatiques.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *