Testomatio - Test Management for Codeception
DataFactory allows you to easily generate and create test data using FactoryMuffin. DataFactory uses an ORM of your application to define, save and cleanup data. Thus, should be used with ORM or Framework modules.
This module requires packages installed:
Generation rules can be defined in a factories file.
Create a folder for factories files: tests/_support/factories
.
Create an empty PHP file inside that folder factories.php
.
Follow FactoryMuffin documentation to set valid rules.
Randomly generated data provided by Faker library.
Here is the sample factory file:
Configure this module to load factory definitions from a directory. You should also specify a module with an ORM as a dependency.
(you can also use Laravel and Phalcon).
In cases you want to use data from database inside your factory definitions you can define them in a Helper.
For instance, if you use Doctrine, this allows you to access EntityManager
inside a definition.
To proceed you should create Factories helper via generate:helper
command and enable it:
In this case you can define factories from a Helper class with _define
method.
Factory Definitions are described in official Factory Muffin Documentation
If your module relies on other model you can generate them both.
To create a related module you can use either factory
or entity
prefix, depending on ORM you use.
In case your ORM expects an Id of a related record (Eloquent) to be set use factory
prefix:
In case your ORM expects a related record itself (Doctrine) then you should use entity
prefix:
You can define a custom store for Factory Muffin using customStore
parameter. It can be a simple class or a factory with create
method.
The instantiated object must implement \League\FactoryMuffin\Stores\StoreInterface
.
Store factory example:
param string
$nameparam array
$extraAttrsreturn object
Generates and saves a record,.
Returns an instance of created user.
param string
$nameparam int
$timesparam array
$extraAttrsreturn object[]
Generates and saves a record multiple times.
param string
$nameparam array
$extraAttrsreturn object
Generates a record instance.
This does not save it in the database. Use have
for that.
Returns an instance of created user without creating a record in database.
param
$settingsthrows ModuleException