Make WordPress Core


Ignore:
Timestamp:
08/22/2022 10:42:59 PM (16 months ago)
Author:
SergeyBiryukov
Message:

Tests: Consistently skip tests for non-implemented methods in REST API test classes.

WordPress core test suite uses PHPUnit's beStrictAboutTestsThatDoNotTestAnything option set to true, which marks a test as risky when no assertions are performed.

REST API test classes have some empty tests for non-implemented methods because these test classes extend the abstract WP_Test_REST_Controller_Testcase class, which requires several methods to be implemented that don't necessarily make sense for all REST API routes.

Some of these empty tests were already marked as skipped, but not in a consistent manner. Since skipping these tests is intentional for the time being, this commit aims to bring some consistency and adjust them all to be more accurately reported as skipped instead of risky.

The skipping can be reconsidered in the future when the tests are either removed as unnecessary or updated to actually perform assertions related to their behavior.

Follow-up to [40534], [41176], [41228].

Props Mte90, tomepajk, johnbillion, zieladam, SergeyBiryukov.
See #40538, #41463, #55652.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/rest-api/wpRestBlockPatternCategoriesController.php

    r53152 r53921  
    147147
    148148    public function test_context_param() {
    149         $this->markTestSkipped( 'Controller does not use context_param.' );
     149        $this->markTestSkipped( 'Controller does not use get_context_param().' );
    150150    }
    151151
    152152    public function test_get_item() {
    153         $this->markTestSkipped( 'Controller does not have get_item route.' );
     153        $this->markTestSkipped( 'Controller does not implement get_item().' );
    154154    }
    155155
    156156    public function test_create_item() {
    157         $this->markTestSkipped( 'Controller does not have create_item route.' );
     157        $this->markTestSkipped( 'Controller does not implement create_item().' );
    158158    }
    159159
    160160    public function test_update_item() {
    161         $this->markTestSkipped( 'Controller does not have update_item route.' );
     161        $this->markTestSkipped( 'Controller does not implement update_item().' );
    162162    }
    163163
    164164    public function test_delete_item() {
    165         $this->markTestSkipped( 'Controller does not have delete_item route.' );
     165        $this->markTestSkipped( 'Controller does not implement delete_item().' );
    166166    }
    167167
    168168    public function test_prepare_item() {
    169         $this->markTestSkipped( 'Controller does not have prepare_item route.' );
     169        $this->markTestSkipped( 'Controller does not implement prepare_item().' );
    170170    }
    171171
    172172    public function test_get_item_schema() {
    173         $this->markTestSkipped( 'Controller does not have get_item_schema route.' );
     173        $this->markTestSkipped( 'Controller does not implement get_item_schema().' );
    174174    }
    175175}
Note: See TracChangeset for help on using the changeset viewer.