Skip to content

floor9design-ltd/test-data-generator

Repository files navigation

test-data-generator

Latest Version Packagist Software License

Build Status Code Coverage

Github Downloads Packagist Downloads

Introduction

This offers a very simple class offering methods for basic data generation, ideal for unit tests or data filling. This is not meant to be a replacement for fzaninotto/Faker or fakerphp/faker, but bear in mind that it is Faker is retired and both are pretty large includes for a production environment.

Some of the included functions are very simple, but the small amounts of code, such as filtering or formatting add up to a lot of duplication. In fact, this is the reason the package came about. It simply centralises this code, allowing a single point to catch all this nuance.

For example; it is simple to create a random date string, however there are several traps for random generation. MySQL date strings have bounds (after 1000-01-01), MySQL dates are padded with zeros (February is 02, not 2) and so on and so forth. By using this class these complexities are centralised and resolved in a well tested class structure.

Core functions are exposed, but there are also numerous quick aliases ready for use. For example, The core randomMySqlDateTimeTimestamp offers a safe bounded and correctly instantiated timestamp, which allows a safe call for randomMySqlDate and randomMySqlDateTime.

To be clear; the above example methods are simple, predefined lookups. They are simply just conveniently set-up methods. However, the methods are designed to allow custom output criteria. A formatted date output can easily be generated as well, such as randomMySqlDate('l jS \of F Y h:i:s A'). All relevant/appropriate methods do this also.

Features

  • simple response
  • efficient installation
  • quickly generate reliable fake data such as dates, passwords, numbers of different specs etc.

Install

Packagist Downloads

Via Composer

composer require floor9design/test-data-generator

Github Downloads

Via git

git clone https://github.com/floor9design-ltd/test-data-generator.git

Or:

git clone git@github.com:floor9design-ltd/test-data-generator.git

Usage

Setup

These are a simple classes, so minimal setup is required. In a composer/PSR compliant system, this should be automatically included. If your system works another way, this can be manually included.

Note that they are namespaced, so should not clash with your other classes/methods.

Testing

Build Status Code Coverage

To run the tests:

  • ./vendor/phpunit/phpunit/phpunit

Documentation and coverage can be generated as follows:

  • ./vendor/phpunit/phpunit/phpunit --coverage-html docs/tests/

Static analysis/code review can be performed by using phpstan:

  • ./vendor/bin/phpstan

Gotcha: sometimes you may need to increase memory on docker/vagrant/virtual containers:

  • ./vendor/bin/phpstan --memory-limit=1G

Credits

Changelog

A changelog is generated here:

License