visit our site
testing and fixtures

Setup Testing and Fixtures in Symfony2: The Easy Way

In PHP and Symfony

by Sebastian Mihalache on March 11, 2016

Setting up testing and fixtures in Symfony2 is vital if you plan on starting Test Driven Development or you simply want to start covering your code with properly written tests that can access mock data.

 

1. Install PHPUnit and php 5.6

The first thing you need to do is to install PHPUnit on your machine:

and then, if needed, also upgrade your PHP version to 5.6:

and make sure everything’s ok by running: phpunit -c app/

Please note that this is not a testing tutorial so if you’d like to learn more about how to actually test your Symfony2 app, then please read their documentation.

 

2. Setup and create a test database

In order to be able to configure testing and fixtures in a Symfony2 app a separate, independent database is needed so that your dev environment is not affected.

In the config_test.yml file you simply need to add:

then simply run php app/console doctrine:database:create --env=test

 

RelatedSend Emails in Symfony2: The Right Way

 

3. Build the BaseTestSetup class

Once our test database is ready we can start building our BaseTestSetup class, one which will serve as parent for all of our tests.

 

4. Install the LiipFunctionalTestBundle

Even though Symfony does have an out of the box solution to setup and test your app, the LiipFunctionalTestBundle provides base classes for functional tests to assist in setting up testing and fixtures and HTML5 validation.

After you install and configure the bundle, go back to your BaseTestSetup class and make the necessary modifications:

The new code above simply drops and creates the database each them tests run. Then it loads the fixtures that you’ll need. The LoadUserData class does not exist yet so we’ll go right ahead and add it by following the handy tutorial found on Symfony’s website.

 

5. Write the very first test

Now that have your fixtures ready, you can go ahead and write your first test. Create a new file in your AppBundle/Tests folder called UserTest.php, next to BaseTestSetup.php:

 

And that’s about it! You now have everything you need to properly test your awesome app.

 

One Reply to “Setup Testing and Fixtures in Symfony2: The Easy Way”

Leave a Reply

Your email address will not be published. Required fields are marked *

+1
Share
Tweet
Share
Stumble
Pin