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

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.

Explore Course