Make WordPress Core


Ignore:
Timestamp:
08/07/2021 10:29:41 AM (3 years ago)
Author:
SergeyBiryukov
Message:

Build/Test Tools: Implement use of the void solution.

PHPUnit 8.0.0 introduced a void return type declaration to the "fixture" methods – setUpBeforeClass(), setUp(), tearDown() and tearDownAfterClass(). As the void return type was not introduced until PHP 7.1, this makes it more difficult to create cross-version compatible tests when using fixtures, due to signature mismatches.

The Yoast\PHPUnitPolyfills\TestCases\TestCase overcomes the signature mismatch by having two versions. The correct one will be loaded depending on the PHPUnit version being used.

When using this TestCase, if an individual test, or another TestCase which extends this TestCase, needs to overload any of the "fixture" methods, it should do so by using a snake_case variant of the original fixture method name, i.e. set_up_before_class(), set_up(), assert_pre_conditions(), assert_post_conditions(), tear_down(), and tear_down_after_class().

The snake_case methods will automatically be called by PHPUnit.

IMPORTANT: The snake_case methods should not call the PHPUnit parent, i.e. do not use parent::setUp() from within an overloaded set_up() method. If necessary, DO call parent::set_up().

Reference: https://github.com/Yoast/PHPUnit-Polyfills#testcases

This commit renames all declared fixture methods, and calls to parent versions of those fixture methods, from camelCase to snake_case.

Follow-up to [51559-51567].

Props jrf, hellofromTonya, johnbillion, netweb, dd32, pputzer, SergeyBiryukov.
See #46149.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/includes/abstract-testcase.php

    r51562 r51568  
    6161     * Runs the routine before setting up all tests.
    6262     */
    63     public static function setUpBeforeClass() {
     63    public static function set_up_before_class() {
    6464        global $wpdb;
    6565
     
    6969        ini_set( 'display_errors', 1 );
    7070
    71         parent::setUpBeforeClass();
     71        parent::set_up_before_class();
    7272
    7373        $class = get_called_class();
     
    8383     * Runs the routine after all tests have been run.
    8484     */
    85     public static function tearDownAfterClass() {
    86         parent::tearDownAfterClass();
     85    public static function tear_down_after_class() {
     86        parent::tear_down_after_class();
    8787
    8888        _delete_all_data();
     
    101101     * Runs the routine before each test is executed.
    102102     */
    103     public function setUp() {
     103    public function set_up() {
    104104        set_time_limit( 0 );
    105105
     
    141141     * After a test method runs, resets any state in WordPress the test method might have changed.
    142142     */
    143     public function tearDown() {
     143    public function tear_down() {
    144144        global $wpdb, $wp_query, $wp;
    145145        $wpdb->query( 'ROLLBACK' );
     
    536536     * @since 4.2.0
    537537     */
    538     protected function assertPostConditions() {
     538    protected function assert_post_conditions() {
    539539        $this->expectedDeprecated();
    540540    }
Note: See TracChangeset for help on using the changeset viewer.