From 31a6cd2f781ebe12f2858fd389cd95dccb23cbd5 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Fri, 6 Aug 2021 00:44:00 +0000 Subject: [PATCH] Build/Test Tools: Change the inheritance order of the abstract test classes. As things were, the inheritance order of the abstract test classes was as follows: {{{ WP_UnitTestCase (PHPUnit adapter layer) extends WP_UnitTestCase_Base (base test class) extends PHPUnit\Framework\TestCase (PHPUnit native class) }}} Concrete (child) test classes, as well as more specific abstract TestCases, are/were expected to extend the `WP_UnitTestCase`. This order is not optimal as it means that the `WP_UnitTestCase_Base` class would not be able to benefit from any polyfills and/or shims in the PHPUnit adapter layer. With that in mind, this commit changes the inheritance to: {{{ WP_UnitTestCase (empty class, left in place to not break BC for plugin/theme integration tests) extends WP_UnitTestCase_Base (base test class) extends PHPUnit_Adapter_TestCase (PHPUnit adapter layer) extends PHPUnit\Framework\TestCase (PHPUnit native class) }}} The new order allows for the `WP_UnitTestCase_Base` to also benefit from the PHPUnit adapter layer. For backward compatibility reasons the `WP_UnitTestCase`, which all test classes are (were) expected to extend, is left in place, though it is now an empty class and explicitly `abstract`. Follow-up to [51559], [51560]. Props jrf, hellofromTonya, johnbillion, netweb, SergeyBiryukov. See #46149. git-svn-id: https://develop.svn.wordpress.org/trunk@51561 602fd350-edb4-49c9-b593-d223f7449a82 --- tests/phpunit/includes/abstract-testcase.php | 2 +- tests/phpunit/includes/bootstrap.php | 1 + .../includes/phpunit-adapter-testcase.php | 45 +++++++++++++++++++ tests/phpunit/includes/testcase.php | 45 +------------------ 4 files changed, 49 insertions(+), 44 deletions(-) create mode 100644 tests/phpunit/includes/phpunit-adapter-testcase.php diff --git a/tests/phpunit/includes/abstract-testcase.php b/tests/phpunit/includes/abstract-testcase.php index c70b6d6aad..933859571b 100644 --- a/tests/phpunit/includes/abstract-testcase.php +++ b/tests/phpunit/includes/abstract-testcase.php @@ -12,7 +12,7 @@ require_once __DIR__ . '/trac.php'; * * All WordPress unit tests should inherit from this class. */ -abstract class WP_UnitTestCase_Base extends PHPUnit\Framework\TestCase { +abstract class WP_UnitTestCase_Base extends PHPUnit_Adapter_TestCase { protected static $forced_tickets = array(); protected $expected_deprecated = array(); diff --git a/tests/phpunit/includes/bootstrap.php b/tests/phpunit/includes/bootstrap.php index b96ed477e7..b557efd3d9 100644 --- a/tests/phpunit/includes/bootstrap.php +++ b/tests/phpunit/includes/bootstrap.php @@ -207,6 +207,7 @@ if ( version_compare( tests_get_phpunit_version(), '6.0', '>=' ) ) { require_once $phpunit_polyfills_autoloader; unset( $phpunit_polyfills_autoloader ); +require __DIR__ . '/phpunit-adapter-testcase.php'; require __DIR__ . '/abstract-testcase.php'; require __DIR__ . '/testcase.php'; require __DIR__ . '/testcase-rest-api.php'; diff --git a/tests/phpunit/includes/phpunit-adapter-testcase.php b/tests/phpunit/includes/phpunit-adapter-testcase.php new file mode 100644 index 0000000000..5c1640817f --- /dev/null +++ b/tests/phpunit/includes/phpunit-adapter-testcase.php @@ -0,0 +1,45 @@ +