Unit Testing with PHPUnit
Laravel ships with PHPUnit configured out of the box, making it straightforward to write focused, isolated tests for individual pieces of application logic.
Generating a Test
php artisan make:test PriceCalculatorTest --unit
The --unit flag places the test under tests/Unit, where classes are tested in isolation without booting the full Laravel application.
A Simple Example
public function test_discount_is_applied_correctly()
{
$calculator = new PriceCalculator();
$result = $calculator->applyDiscount(100, 10);
$this->assertEquals(90, $result);
}
Running Tests
php artisan test
./vendor/bin/phpunit
Why Unit Tests Matter
- Catch regressions early, before code reaches production
- Document expected behaviour of individual classes and methods
- Run fast since they avoid hitting the database or HTTP layer
Unit tests are ideal for isolated logic, but most Laravel applications also need to verify that full HTTP requests behave correctly — which is where feature tests come in.
Ready to master Laravel Training Course?
Join Uncodemy's hands-on Laravel program and build real, production-ready applications.
