How to Start Testing in PHP with PHPUnit with a step-by-step guide.
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
Or install it locally for a specific project:
composer require --dev phpunit/phpunit
Once installed, you can confirm the installation by running:
./vendor/bin/phpunit --version
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; } }
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); } }
Test Class:
The test class CalculatorTest extends TestCase, which is the base class provided by PHPUnit. Every test class should inherit from this.
Arrange:
In the testAddition method, we instantiate the Calculator class. This step sets up everything needed for the test (commonly called the "arrange" phase).
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.
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.
To run your tests, execute the following command in the terminal:
./vendor/bin/phpunit tests
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)
Let’s add another method to test subtraction, and write a corresponding test case.
// src/Calculator.php class Calculator { public function add($a, $b) { return $a + $b; } public function subtract($a, $b) { return $a - $b; } }
// 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); } }
Run the tests again to ensure both the add and subtract methods work:
./vendor/bin/phpunit tests
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)
Now you have a basic setup for testing in PHP using PHPUnit. Here's a quick recap of the process:
By expanding this approach to cover more complex scenarios, you'll ensure your PHP code works as expected.
Das obige ist der detaillierte Inhalt vonEin Anfängerleitfaden zum Testen von PHP-Code mit PHPUnit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!