A Beginner's Guide to Testing PHP Code with PHPUnit

Mary-Kate Olsen
Release: 2024-09-28 06:09:02
Original
913 people have browsed it

A Beginner’s Guide to Testing PHP Code with PHPUnit

How to Start Testing in PHP with PHPUnit with a step-by-step guide.

Step 1: Install PHPUnit

Before you start writing tests, you need to install PHPUnit in your project.

You can install it globally using Composer:

composer global require phpunit/phpunit
Copy after login

Or install it locally for a specific project:

composer require --dev phpunit/phpunit
Copy after login

Once installed, you can confirm the installation by running:

./vendor/bin/phpunit --version
Copy after login

Step 2: Create a Sample Class to Test

Let’s create a simple Calculator class that will add two numbers. This class will be the subject of our test.

// src/Calculator.php
class Calculator
{
    public function add($a, $b)
    {
        return $a + $b;
    }
}
Copy after login

Step 3: Create a PHPUnit Test Case

Next, create a test class to write tests for the Calculator class. By convention, PHPUnit test files should end with Test.php and be placed in a tests directory.

// tests/CalculatorTest.php

use PHPUnit\Framework\TestCase;

class CalculatorTest extends TestCase
{
    public function testAddition()
    {
        // Arrange: Create a new Calculator instance
        $calculator = new Calculator();

        // Act: Perform the add operation
        $result = $calculator->add(2, 3);

        // Assert: Verify the result is 5
        $this->assertEquals(5, $result);
    }
}
Copy after login

Part-by-Part Breakdown

  1. Test Class:

    The test class CalculatorTest extends TestCase, which is the base class provided by PHPUnit. Every test class should inherit from this.

  2. Arrange:

    In the testAddition method, we instantiate the Calculator class. This step sets up everything needed for the test (commonly called the "arrange" phase).

  3. Act:

    We call the add() method from the Calculator class with values 2 and 3. This is the action or the behavior we're testing.

  4. Assert:

    Finally, we use the assertEquals() method to verify that the output of add(2, 3) is indeed 5. If the assertion is true, the test will pass; otherwise, it will fail.

Step 4: Running the Test

To run your tests, execute the following command in the terminal:

./vendor/bin/phpunit tests
Copy after login
Copy after login

If everything is set up correctly, you should see output similar to this:

PHPUnit 9.5.4 by Sebastian Bergmann and contributors.

.                                                                   1 / 1 (100%)

Time: 00:00.010, Memory: 4.00 MB

OK (1 test, 1 assertion)
Copy after login

Step 5: Expand the Test Case

Let’s add another method to test subtraction, and write a corresponding test case.

Update Calculator Class:

// src/Calculator.php
class Calculator
{
    public function add($a, $b)
    {
        return $a + $b;
    }

    public function subtract($a, $b)
    {
        return $a - $b;
    }
}
Copy after login

Update the Test Case:

// tests/CalculatorTest.php
use PHPUnit\Framework\TestCase;

class CalculatorTest extends TestCase
{
    public function testAddition()
    {
        $calculator = new Calculator();
        $result = $calculator->add(2, 3);
        $this->assertEquals(5, $result);
    }

    public function testSubtraction()
    {
        $calculator = new Calculator();
        $result = $calculator->subtract(5, 3);
        $this->assertEquals(2, $result);
    }
}
Copy after login

Step 6: Running All Tests

Run the tests again to ensure both the add and subtract methods work:

./vendor/bin/phpunit tests
Copy after login
Copy after login

If both tests pass, you should see:

PHPUnit 9.5.4 by Sebastian Bergmann and contributors.

..                                                                  2 / 2 (100%)

Time: 00:00.010, Memory: 4.00 MB

OK (2 tests, 2 assertions)
Copy after login

Conclusion

Now you have a basic setup for testing in PHP using PHPUnit. Here's a quick recap of the process:

  1. Install PHPUnit using Composer.
  2. Create your PHP class that you want to test (e.g., Calculator).
  3. Write your test class extending TestCase with appropriate test methods.
  4. Run the tests and see the results in your terminal.

By expanding this approach to cover more complex scenarios, you'll ensure your PHP code works as expected.

The above is the detailed content of A Beginner's Guide to Testing PHP Code with PHPUnit. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!