laravelfr / api-testing
A package which provide all you need for testing apis!
Installs: 1 944
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=5.5
- laravel/framework: ~5.1
Requires (Dev)
- laravel/browser-kit-testing: ^2.0
- phpunit/phpunit: ^4.8|^5.0
This package is not auto-updated.
Last update: 2024-11-18 07:35:35 UTC
README
By the LaravelFr Team
This package provide you some methods to fully test your Laravel API.
The LaravelFr team is a group of french friends who decide to put in common some useful methods for testing API. Whoever you are, feel free to contribute to this package or join the organisation to add yours !
Installation
composer require laravelfr/api-testing
Usage
Once Laravel API Testing is installed, you can extend or implement the classes and traits in this package. There are no service providers to register.
It works both with old testing way (Laravel <5.4 and >5.4 with BrowserKit) and with new testing way (with response object).
- Old way: Just use
\LaravelFr\ApiTesting\AssertArrays
and\LaravelFr\ApiTesting\AssertJsonResponse
traits, and use directly the methods from traits. - New way: for
AssertJsonResponse
, you can add the trait, and directly use the methods on response object.
See Tests for some examples.
Available methods:
On this response example :
{
"foo": 134,
"foobar": {
"foobar_foo": "foo",
"foobar_bar": 212
},
"bars": [
{
"bar": true,
"foo": 134.212
},
{
"bar": false,
"foo": 134.212
},
{
"bar": false,
"foo": 134.212
}
],
"baz": [
{
"foo": "Laravel",
"bar": {
"foo": true,
"bar": 134
}
},
{
"foo": "France",
"bar": {
"foo": false,
"bar": 212
}
}
]
}
assertJsonStructureEquals
: check if it respects the exact structure pattern.
$response->assertJsonStructureEquals([ 'foo', 'baz' => ['*' => ['bar' => ['*'], 'foo']], 'bars' => ['*' => ['bar', 'foo']], 'foobar' => ['foobar_foo', 'foobar_bar'], ]);
seeJsonTypedStructure
: check if it respects a typed pattern.
$response->seeJsonTypedStructure([ 'foo' => 'integer', 'baz' => ['*' => ['bar' => 'array', 'foo' => 'string']], 'bars' => ['*' => ['bar' => 'boolean', 'foo' => 'float']], 'foobar' => ['foobar_foo' => 'string', 'foobar_bar' => 'int'], ]);
seeJsonTypedStructure
: retrieve a part of response in array format.
$response->jsonResponse('foobar.foobar_bar')); // 212
Credits
- Maintenance: Mathieu TUDISCO dev@mathieutu.ovh,
- Methods:
Please feel free to make PRs and add yours!