1. Go to this page and download the library: Download yoast/phpunit-polyfills library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
yoast / phpunit-polyfills example snippets
namespace Vendor\YourPackage\Tests;
use PHPUnit\Framework\TestCase;
use Yoast\PHPUnitPolyfills\Polyfills\AssertIsType;
class FooTest extends TestCase
{
use AssertIsType;
public function testSomething()
{
$this->assertIsBool( $maybeBool );
self::assertIsNotIterable( $maybeIterable );
}
}
namespace Vendor\YourPackage\Tests;
use Yoast\PHPUnitPolyfills\TestCases\TestCase;
class FooTest extends TestCase
{
public function testSomething()
{
$this->assertIsBool( $maybeBool );
self::assertMatchesRegularExpression( $pattern, $string, $message );
}
}
namespace Vendor\YourPackage\Tests;
use PHPUnit\Framework\TestCase;
use Yoast\PHPUnitPolyfills\Polyfills\AssertIgnoringLineEndings;
use Yoast\PHPUnitPolyfills\Polyfills\AssertStringContains;
class FooTest extends TestCase
{
use AssertIgnoringLineEndings;
use AssertStringContains;
public function testSomething()
{
$this->assertStringContainsStringIgnoringLineEndings(
"something\nelse",
"this is something\r\nelse"
);
}
}
// Example: skipping the test completely.
if ( $this->shouldClosedResourceAssertionBeSkipped( $actual ) === true ) {
$this->markTestSkipped('assertIs[Not]ClosedResource() cannot determine whether this resource is'
. ' open or closed due to bugs in PHP (PHP ' . \PHP_VERSION . ').');
}
// Example: selectively skipping the assertion.
if ( self::shouldClosedResourceAssertionBeSkipped( $actual ) === false ) {
$this->assertIsClosedResource( $actual );
}
use Yoast\PHPUnitPolyfills\TestCases\TestCase;
class MyTest extends TestCase {
public static function set_up_before_class() {
parent::set_up_before_class();
// Set up a database connection or other fixture which needs to be available.
}
protected function set_up() {
parent::set_up();
// Set up function mocks which need to be available for all tests in this class.
}
protected function assert_pre_conditions() {
parent::assert_pre_conditions();
// Perform assertions shared by all tests of a test case (before the test).
}
protected function assert_post_conditions() {
// Performs assertions shared by all tests of a test case (after the test).
parent::assert_post_conditions();
}
protected function tear_down() {
// Any clean up needed related to `set_up()`.
parent::tear_down();
}
public static function tear_down_after_class() {
// Close database connection and other clean up related to `set_up_before_class()`.
parent::tear_down_after_class();
}
}
use Yoast\PHPUnitPolyfills\TestCases\XTestCase;
class MyTest extends XTestCase {
/**
* @beforeClass
*/
public static function setUpFixturesBeforeClass() {
parent::setUpFixturesBeforeClass();
// Set up a database connection or other fixture which needs to be available.
}
/**
* @before
*/
protected function setUpFixtures() {
parent::setUpFixtures();
// Set up function mocks which need to be available for all tests in this class.
}
/**
* @after
*/
protected function tearDownFixtures() {
// Any clean up needed related to `setUpFixtures()`.
parent::tearDownFixtures();
}
/**
* @afterClass
*/
public static function tearDownFixturesAfterClass() {
// Close database connection and other clean up related to `setUpFixturesBeforeClass()`.
parent::tearDownFixturesAfterClass();
}
}
// PHPUnit 6.
class MyTestListener extends \PHPUnit\Framework\BaseTestListener {}
// PHPUnit 7+.
class MyTestListener implements \PHPUnit\Framework\TestListener {
use \PHPUnit\Framework\TestListenerDefaultImplementation;
}
use PHPUnit\Framework\TestListener;
use Yoast\PHPUnitPolyfills\TestListeners\TestListenerDefaultImplementation;
class MyTestListener implements TestListener {
use TestListenerDefaultImplementation;
// Implement any of the snakecase methods, for example:
public function add_error( $test, $e, $time ) {
// Do something when PHPUnit encounters an error.
}
}
if ( class_exists( '\Yoast\PHPUnitPolyfills\Autoload' ) === false ) {
Autoload::VERSION' ) === false
|| version_compare( \Yoast\PHPUnitPolyfills\Autoload::VERSION, $versionRequirement, '<' )
) {
echo 'Error: Version mismatch detected for the PHPUnit Polyfills.',
' Please ensure that PHPUnit Polyfills ', $versionRequirement,
' or higher is loaded.', PHP_EOL;
exit(1);
} else {
echo 'Error: Please run `composer update -W` before running the tests.' . PHP_EOL;
echo 'You can still use a PHPUnit phar to run them,',
' but the dependencies do need to be installed.', PHP_EOL;
exit(1);
}