floor9design / test-data-generator
Classes to generate test data
Installs: 15 327
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.3
- ext-json: *
Requires (Dev)
- mockery/mockery: dev-master
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^10||^9
README
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
Via Composer
composer require floor9design/test-data-generator
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
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: