atoum / praspel-extension
Include Praspel inside atoum.
Installs: 27 354
Dependents: 6
Suggesters: 0
Security: 0
Stars: 6
Watchers: 8
Forks: 5
Open Issues: 1
Requires
- atoum/atoum: ^2.0 | ^3.0
- hoa/consistency: ~1.0
- hoa/console: ~3.0
- hoa/dispatcher: ~1.0
- hoa/exception: ~1.0
- hoa/iterator: ~2.0
- hoa/math: ~1.0
- hoa/praspel: ~1.0
- hoa/realdom: ~1.0
- hoa/router: ~3.0
- hoa/visitor: ~2.0
This package is auto-updated.
Last update: 2021-09-20 08:30:06 UTC
README
This extension introduces Praspel inside atoum.
atoum is a simple, modern and intuitive unit testing framework for PHP!
Hoa is a modular, extensible and structured set of PHP libraries. Moreover, Hoa aims at being a bridge between industrial and research worlds.
Installation
With Composer, to include this library into your
dependencies, you need to require
atoum/praspel-extension
:
composer require --dev atoum/praspel-extension
Please, read the website to get more informations about how to install.
And to activate the extension, add this line on your .atoum.php
configuration
file:
$runner->addExtension(new \Atoum\PraspelExtension\Manifest());
Quick usage
This extension brings two aspects into atoum: automatic test data generation
(from Hoa\Realdom
)
and automatic test suite generation (from
Hoa\Praspel
, which
relies on Hoa\Realdom
).
Automatic test data generation
[more explications needed] We will use three asserters to generate data and one to validate data:
realdom
to create a realistic domains disjunction,sample
to generate one data from a realistic domains disjunction,sampleMany
to generate several data,predicate
to validate a data against a realistic domains disjunction.
As an example, we are going to generate an integer defined by: [7; 13] ∪ [42; 153]:
$this->sample($this->realdom->boundinteger(7, 13)->or->boundinteger(42, 153))
We can obviously use the classical asserters from atoum:
foreach ($this->sampleMany($this->realdom->boundinteger(-5, 5), 1024) as $i) { $this->integer($i)->isGreaterThan(0); }
(this example is a little dummy ;-)).
We can generate more sophisticated data (please, see the standard realistic
domain library in
Hoa\Realdom
), such
as strings based on regular expressions (and also grammars):
$data = $this->realdom->regex('/[\w\-_]+(\.[\w\-\_]+)*@\w\.(net|org)/'); $this->string($this->sample($data)) ->contains(…)->…;
Or even dates:
$data = $this->realdom->date( 'd/m H:i', $this->realdom->boundinteger( $this->realdom->timestamp('yesterday'), $this->realdom->timestamp('next Monday') ) ); foreach ($this->sampleMany($data, 10) as $date) { var_dump($date); }
Automatic test suite generation
We will use the Bin/praspel
binary script.
[TODO]
Documentation of Hoa
Different documentations can be found on the website: https://hoa-project.net/.
Links
License
Hoa, along with this extension, is under the New BSD License (BSD-3-Clause).
Please, see LICENSE
.