WordPress.org

Make WordPress Core


Ignore:
Timestamp:
08/06/2021 12:44:00 AM (6 months ago)
Author:
SergeyBiryukov
Message:

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.

File:
1 edited

Legend:

Unmodified
Added
Removed
Note: See TracChangeset for help on using the changeset viewer.