Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Test Api Rest Bundle Laravel Package

everycheck/test-api-rest-bundle

View on GitHub
Deep Wiki
Context7

TestApiRestBundle

Build Status

About

TestApiRestBundle allows you to test your Symfony REST API deeply. It checks the validity of your application and ensures it stays robust throughout time using PHPUnit and via unit, scenario and database testing.

Table of contents

Installation

You can install using composer, assuming it's already installed globally :

composer require --dev everycheck\test-api-rest-bundle

Configuration

Configure the relative paths of the directories containing the requests payloads that you would send in your tests and their expected responses. The paths are taken from AcmeBundle\tests\AcmeBundle.

test_api_rest:
    directory:
        payloads: path/to/payloads
        responses: path/to/responses

So, here, the real path of the directories are :

AcmeBundle\tests\AcmeBundle\path\to\payloads AcmeBundle\tests\AcmeBundle\path\to\responses

Usages

Advanced usages

Tests folder structure

To test one of your bundle, you just have to replicate the structure of that one and add some directories by the following structure

.
├── tests                                       #   The basic Symfony test directory
│   ├── AcmeFooBundle                           #   Name of your bundle
│   │   ├── Controller                          
│   │   │   ├── FooControllerTest.php           #   Controller your want to test
│   │   │   └── ...                                    
│   │   │
│   │   ├── DataFixtures                        
│   │   │   └── ORM                             
│   │   │       ├─ LoadAcmeFooFixtures.php     #   Fixtures dedicated to one controller   
|   |   |       └── ...
│   │   │                                       
│   │   ├── Payloads                            
│   │   │   └── ...                             #   File posted to your API
│   │   │                                       
│   │   ├── Resources                           
│   │   │   └── config                          
│   │   │       ├── foo.yaml                    #   All the tests for a specific controller, set as a YAML file
│   │   │       └── ...                    
│   │   │   
│   │   └── Responses                           #   All the expected responses coming from the endpoints of your API when testing it
│   │       └── Expected
│   │           └── ...
│   └──
└──

Launching test

Here are the commands to execute in order to test the bundle :

composer install

./Tests/sampleProject/app/console d:d:d --force
./Tests/sampleProject/app/console d:d:c
./Tests/sampleProject/app/console d:s:c
./Tests/sampleProject/app/console s:start --docroot=./Tests/sampleProject/public

php ./Tests/sampleProject/tests/DemoBundle/DataFixtures/LoadDemoFixture.php localhost:portYouAreListening "[debug]"
php ./Tests/sampleProject/tests/PatternBundle/DataFixtures/LoadPatternFixture.php localhost:portYouAreListening "[debug]"

./Tests/sampleProject/app/console s:stop

./vendor/bin/phpunit
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator