Open In App

PHPUnit: Testing Framework for PHP

Last Updated : 22 Jul, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

PHPUnit is a programmer-oriented testing framework for PHP. It is an instance of the xUnit architecture for unit testing frameworks. It is used for the purpose of unit testing for PHP code. PHPUnit was created by Sebastian Bergmann and its development is hosted on GitHub.

Purpose of the PHPUnit Framework :

Its purpose is to verify the functionality and impact of newly written code by developers. By running the unit test cases a developer can easily find mistakes in their business logic or functionality of the previously written code. PHPUnit uses assertions to verify the behavior of the specific component.

The goal of unit testing is to isolate each part of the program and show that the individual parts are correct. A unit test provides a strict, written contract that the piece of code must satisfy. As a result, unit tests find problems early in the development cycle. A developer can use different types of assertions for different types of expected results and hence can verify them easily. For assertion, PHPUnit provides a different function to assert actual output versus expected output.

Note: Although the code looks like of php but can’t be compiled on php compiler. Use the phpUnit filename.php command to run the code on the local machine.

PHP
<? php
// Use PHPunit Framework
use PHPUnit\Framework\TestCase;


// Extend the test case class of phpunit
class StackTest extends TestCase
{
    public function testPushAndPop()
   {

// create an empty vector
$vector = new \Ds\Vector();

// assert the size of vector
$this->assertSame(0, count($vector));
$vector->insert(0, "first");
// assert the value of vector 
$this->assertSame('first', $vector[count($vector)-1]);

// assert the size of vector
$this->assertSame(1, count($vector));

// pop and assert the popped element
$this->assertSame('first', $vector->pop());
$this->assertSame(0, count($vector));
    }
}
?>

Output
PHPUnit 6.5.5 by Sebastian Bergmann and contributors.

.                                                                   1 / 1 (100%)

Time: 827 ms, Memory: 4.00MB

OK (1 test, 5 assertions)


Next Article

Similar Reads