Unit Testing allows you to test your code and verify that it is working correctly. In fact, many advocate that you should even write your tests before you write your code! Laravel provides beautiful integration with the popular PHPUnit testing library, making it easy to get started writing your tests. In fact, the Laravel framework itself has hundreds of unit tests!
All of your application's tests live in the application/tests directory. In this directory, you will find a basic example.test.php file. Pop it open and look at the class it contains:
<?php
class TestExample extends PHPUnit_Framework_TestCase {
/**
* Test that a given condition is met.
*
* @return void
*/
public function testSomethingIsTrue()
{
$this->assertTrue(true);
}
}
Take special note of the .test.php file suffix. This tells Laravel that it should include this class as a test case when running your test. Any files in the test directory that are not named with this suffix will not be considered a test case.
If you are writing tests for a bundle, just place them in a tests directory within the bundle. Laravel will take care of the rest!
For more information regarding creating test cases, check out the PHPUnit documentation.
To run your tests, you can use Laravel's Artisan command-line utility:
php artisan test
php artisan test bundle-name
Here's an example of how you can call your controllers from your tests:
$response = Controller::call('home@index', $parameters);
$controller = Controller::resolve('application', 'home@index');
Note: The controller's action filters will still run when using Controller::call to execute controller actions.