Tests: Explicitly mark empty REST API tests as not performing any assertions.

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.

As these tests are intentionally empty, they were previously marked as skipped, so that they are not reported as risky.

This commit aims to further reduce noise in the test suite and effectively ignores these empty tests altogether, which seems like a more appropriate option at this time.

The `@doesNotPerformAssertions` annotation 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], [53921].

See #40538, #41463, #55652.

git-svn-id: https://develop.svn.wordpress.org/trunk@54058 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov 2022-09-01 22:54:19 +00:00
parent c4594ec05b
commit 32ead26653
18 changed files with 265 additions and 87 deletions

View File

@ -271,8 +271,11 @@ class WP_Test_REST_Autosaves_Controller extends WP_Test_REST_Post_Type_Controlle
$this->assertErrorResponse( 'rest_post_invalid_parent', $response, 404 );
}
/**
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
public function test_prepare_item() {

View File

@ -130,20 +130,32 @@ class WP_REST_Block_Directory_Controller_Test extends WP_Test_REST_Controller_Te
$this->assertSame( array(), $data );
}
/**
* @doesNotPerformAssertions
*/
public function test_get_item() {
$this->markTestSkipped( 'Controller does not implement get_item().' );
// Controller does not implement get_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_update_item() {
$this->markTestSkipped( 'Controller does not implement update_item().' );
// Controller does not implement update_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
/**

View File

@ -614,43 +614,55 @@ class REST_Block_Renderer_Controller_Test extends WP_Test_REST_Controller_Testca
/**
* The update_item() method does not exist for block rendering.
*
* @doesNotPerformAssertions
*/
public function test_update_item() {
$this->markTestSkipped( 'Controller does not implement update_item().' );
// Controller does not implement update_item().
}
/**
* The create_item() method does not exist for block rendering.
*
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
* The delete_item() method does not exist for block rendering.
*
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
/**
* The get_items() method does not exist for block rendering.
*
* @doesNotPerformAssertions
*/
public function test_get_items() {
$this->markTestSkipped( 'Controller does not implement get_items().' );
// Controller does not implement get_items().
}
/**
* The get_context_param() method is not used for block rendering.
*
* @doesNotPerformAssertions
*/
public function test_context_param() {
$this->markTestSkipped( 'Controller does not use get_context_param().' );
// Controller does not use get_context_param().
}
/**
* The prepare_item() method does not exist for block rendering.
*
* @doesNotPerformAssertions
*/
public function test_prepare_item() {
$this->markTestSkipped( 'Controller does not implement prepare_item().' );
// Controller does not implement prepare_item().
}
}

View File

@ -552,22 +552,28 @@ class REST_Block_Type_Controller_Test extends WP_Test_REST_Controller_Testcase {
/**
* The create_item() method does not exist for block types.
*
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
* The update_item() method does not exist for block types.
*
* @doesNotPerformAssertions
*/
public function test_update_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
* The delete_item() method does not exist for block types.
*
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
}

View File

@ -124,12 +124,18 @@ class WP_REST_Global_Styles_Controller_Test extends WP_Test_REST_Controller_Test
);
}
/**
* @doesNotPerformAssertions
*/
public function test_context_param() {
$this->markTestSkipped( 'Controller does not use get_context_param().' );
// Controller does not use get_context_param().
}
/**
* @doesNotPerformAssertions
*/
public function test_get_items() {
$this->markTestSkipped( 'Controller does not implement get_items().' );
// Controller does not implement get_items().
}
/**
@ -382,8 +388,11 @@ class WP_REST_Global_Styles_Controller_Test extends WP_Test_REST_Controller_Test
$this->assertStringContainsString( '/wp/v2/global-styles/' . self::$global_styles_id, $links['self'][0]['href'] );
}
/**
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
@ -437,12 +446,18 @@ class WP_REST_Global_Styles_Controller_Test extends WP_Test_REST_Controller_Test
$this->assertErrorResponse( 'rest_cannot_edit', $response, 403 );
}
/**
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_prepare_item() {
$this->markTestSkipped( 'Controller does not implement prepare_item().' );
// Controller does not implement prepare_item().
}
/**

View File

@ -408,8 +408,11 @@ class WP_Test_REST_Pages_Controller extends WP_Test_REST_Post_Type_Controller_Te
$this->assertSame( $post2, $data[0]['id'] );
}
/**
* @doesNotPerformAssertions
*/
public function test_get_item() {
$this->markTestSkipped( 'Controller does not implement get_item().' );
// Controller does not implement get_item().
}
public function test_get_item_invalid_post_type() {
@ -419,8 +422,11 @@ class WP_Test_REST_Pages_Controller extends WP_Test_REST_Post_Type_Controller_Te
$this->assertSame( 404, $response->get_status() );
}
/**
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
public function test_create_item_with_template() {
@ -484,8 +490,11 @@ class WP_Test_REST_Pages_Controller extends WP_Test_REST_Post_Type_Controller_Te
$this->assertErrorResponse( 'rest_post_invalid_id', $response, 400 );
}
/**
* @doesNotPerformAssertions
*/
public function test_update_item() {
$this->markTestSkipped( 'Controller does not implement update_item().' );
// Controller does not implement update_item().
}
public function test_delete_item() {
@ -507,8 +516,11 @@ class WP_Test_REST_Pages_Controller extends WP_Test_REST_Post_Type_Controller_Te
$this->assertSame( 'trash', $data['status'] );
}
/**
* @doesNotPerformAssertions
*/
public function test_prepare_item() {
$this->markTestSkipped( 'Controller does not implement prepare_item().' );
// Controller does not implement prepare_item().
}
public function test_prepare_item_limit_fields() {

View File

@ -310,20 +310,32 @@ class WP_REST_Pattern_Directory_Controller_Test extends WP_Test_REST_Controller_
$this->assertSame( 'modified the cache', $patterns[0] );
}
/**
* @doesNotPerformAssertions
*/
public function test_get_item() {
$this->markTestSkipped( 'Controller does not implement get_item().' );
// Controller does not implement get_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_update_item() {
$this->markTestSkipped( 'Controller does not implement update_item().' );
// Controller does not implement update_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
/**
@ -402,9 +414,11 @@ class WP_REST_Pattern_Directory_Controller_Test extends WP_Test_REST_Controller_
* @covers WP_REST_Pattern_Directory_Controller::get_item_schema
*
* @since 5.8.0
*
* @doesNotPerformAssertions
*/
public function test_get_item_schema() {
$this->markTestSkipped( "The controller's schema is hardcoded, so tests would not be meaningful." );
// The controller's schema is hardcoded, so tests would not be meaningful.
}
/**

View File

@ -75,8 +75,11 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
$this->assertSame( 404, $response->get_status() );
}
/**
* @doesNotPerformAssertions
*/
public function test_context_param() {
$this->markTestSkipped( 'Controller does not use get_context_param().' );
// Controller does not use get_context_param().
}
public function test_get_item_is_not_public_not_authenticated() {
@ -383,9 +386,11 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
$this->assertNull( $data['mycustomsettinginrest'] );
}
/**
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
public function test_update_item() {
@ -665,12 +670,18 @@ class WP_Test_REST_Settings_Controller extends WP_Test_REST_Controller_Testcase
$this->assertSame( 404, $response->get_status() );
}
/**
* @doesNotPerformAssertions
*/
public function test_prepare_item() {
$this->markTestSkipped( 'Controller does not implement prepare_item().' );
// Controller does not implement prepare_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_get_item_schema() {
$this->markTestSkipped( 'Controller does not implement get_item_schema().' );
// Controller does not implement get_item_schema().
}
/**

View File

@ -574,9 +574,11 @@ class WP_Test_REST_Sidebars_Controller extends WP_Test_REST_Controller_Testcase
/**
* The create_item() method does not exist for sidebar.
*
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
@ -892,16 +894,20 @@ class WP_Test_REST_Sidebars_Controller extends WP_Test_REST_Controller_Testcase
/**
* The delete_item() method does not exist for sidebar.
*
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
/**
* The prepare_item() method does not exist for sidebar.
*
* @doesNotPerformAssertions
*/
public function test_prepare_item() {
$this->markTestSkipped( 'Controller does not implement prepare_item().' );
// Controller does not implement prepare_item().
}
/**

View File

@ -1200,16 +1200,20 @@ class WP_Test_REST_Themes_Controller extends WP_Test_REST_Controller_Testcase {
/**
* The create_item() method does not exist for themes.
*
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
* The update_item() method does not exist for themes.
*
* @doesNotPerformAssertions
*/
public function test_update_item() {
$this->markTestSkipped( 'Controller does not implement update_item().' );
// Controller does not implement update_item().
}
/**
@ -1398,15 +1402,19 @@ class WP_Test_REST_Themes_Controller extends WP_Test_REST_Controller_Testcase {
/**
* The delete_item() method does not exist for themes.
*
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
/**
* Context is not supported for themes.
*
* @doesNotPerformAssertions
*/
public function test_context_param() {
$this->markTestSkipped( 'Controller does not use get_context_param().' );
// Controller does not use get_context_param().
}
}

View File

@ -532,22 +532,28 @@ class WP_Test_REST_Widget_Types_Controller extends WP_Test_REST_Controller_Testc
/**
* The create_item() method does not exist for widget types.
*
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
* The update_item() method does not exist for widget types.
*
* @doesNotPerformAssertions
*/
public function test_update_item() {
$this->markTestSkipped( 'Controller does not implement update_item().' );
// Controller does not implement update_item().
}
/**
* The delete_item() method does not exist for widget types.
*
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
}

View File

@ -214,10 +214,10 @@ class WP_Test_REST_Widgets_Controller extends WP_Test_REST_Controller_Testcase {
}
/**
* @ticket 41683
* @doesNotPerformAssertions
*/
public function test_context_param() {
$this->markTestSkipped( 'Controller does not use get_context_param().' );
// Controller does not use get_context_param().
}
/**
@ -1510,9 +1510,11 @@ class WP_Test_REST_Widgets_Controller extends WP_Test_REST_Controller_Testcase {
/**
* The prepare_item() method does not exist for sidebar.
*
* @doesNotPerformAssertions
*/
public function test_prepare_item() {
$this->markTestSkipped( 'Controller does not implement prepare_item().' );
// Controller does not implement prepare_item().
}
/**

View File

@ -145,31 +145,52 @@ class Tests_REST_WpRestBlockPatternCategoriesController extends WP_Test_REST_Con
$this->assertSame( 403, $response->get_status() );
}
/**
* @doesNotPerformAssertions
*/
public function test_context_param() {
$this->markTestSkipped( 'Controller does not use get_context_param().' );
// Controller does not use get_context_param().
}
/**
* @doesNotPerformAssertions
*/
public function test_get_item() {
$this->markTestSkipped( 'Controller does not implement get_item().' );
// Controller does not implement get_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_update_item() {
$this->markTestSkipped( 'Controller does not implement update_item().' );
// Controller does not implement update_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_prepare_item() {
$this->markTestSkipped( 'Controller does not implement prepare_item().' );
// Controller does not implement prepare_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_get_item_schema() {
$this->markTestSkipped( 'Controller does not implement get_item_schema().' );
// Controller does not implement get_item_schema().
}
}

View File

@ -171,31 +171,52 @@ class Tests_REST_WpRestBlockPatternsController extends WP_Test_REST_Controller_T
$this->assertSame( 403, $response->get_status() );
}
/**
* @doesNotPerformAssertions
*/
public function test_context_param() {
$this->markTestSkipped( 'Controller does not use get_context_param().' );
// Controller does not use get_context_param().
}
/**
* @doesNotPerformAssertions
*/
public function test_get_item() {
$this->markTestSkipped( 'Controller does not implement get_item().' );
// Controller does not implement get_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_update_item() {
$this->markTestSkipped( 'Controller does not implement update_item().' );
// Controller does not implement update_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_prepare_item() {
$this->markTestSkipped( 'Controller does not implement prepare_item().' );
// Controller does not implement prepare_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_get_item_schema() {
$this->markTestSkipped( 'Controller does not implement get_item_schema().' );
// Controller does not implement get_item_schema().
}
}

View File

@ -99,58 +99,58 @@ class Tests_REST_WpRestEditSiteExportController extends WP_Test_REST_Controller_
}
/**
* @ticket 54448
* @doesNotPerformAssertions
*/
public function test_context_param() {
$this->markTestSkipped( 'Controller does not use get_context_param().' );
// Controller does not use get_context_param().
}
/**
* @ticket 54448
* @doesNotPerformAssertions
*/
public function test_get_item() {
$this->markTestSkipped( 'Controller does not implement get_item().' );
// Controller does not implement get_item().
}
/**
* @ticket 54448
* @doesNotPerformAssertions
*/
public function test_get_items() {
$this->markTestSkipped( 'Controller does not implement get_items().' );
// Controller does not implement get_items().
}
/**
* @ticket 54448
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
* @ticket 54448
* @doesNotPerformAssertions
*/
public function test_update_item() {
$this->markTestSkipped( 'Controller does not implement update_item().' );
// Controller does not implement update_item().
}
/**
* @ticket 54448
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
/**
* @ticket 54448
* @doesNotPerformAssertions
*/
public function test_prepare_item() {
$this->markTestSkipped( 'Controller does not implement prepare_item().' );
// Controller does not implement prepare_item().
}
/**
* @ticket 54448
* @doesNotPerformAssertions
*/
public function test_get_item_schema() {
$this->markTestSkipped( 'Controller does not implement get_item_schema().' );
// Controller does not implement get_item_schema().
}
}

View File

@ -141,30 +141,38 @@ class Tests_REST_WpRestMenuLocationsController extends WP_Test_REST_Controller_T
/**
* The create_item() method does not exist for menu locations.
*
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
* The update_item() method does not exist for menu locations.
*
* @doesNotPerformAssertions
*/
public function test_update_item() {
$this->markTestSkipped( 'Controller does not implement update_item().' );
// Controller does not implement update_item().
}
/**
* The delete_item() method does not exist for menu locations.
*
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
/**
* The prepare_item() method does not exist for menu locations.
*
* @doesNotPerformAssertions
*/
public function test_prepare_item() {
$this->markTestSkipped( 'Controller does not implement prepare_item().' );
// Controller does not implement prepare_item().
}
/**

View File

@ -614,8 +614,11 @@ class Tests_REST_WpRestTemplatesController extends WP_Test_REST_Controller_Testc
$this->assertErrorResponse( 'rest_template_not_found', $response, 404 );
}
/**
* @doesNotPerformAssertions
*/
public function test_prepare_item() {
$this->markTestSkipped( 'Controller does not implement prepare_item().' );
// Controller does not implement prepare_item().
}
public function test_prepare_item_limit_fields() {

View File

@ -1048,28 +1048,46 @@ class Tests_REST_WpRestUrlDetailsController extends WP_Test_REST_Controller_Test
);
}
/**
* @doesNotPerformAssertions
*/
public function test_context_param() {
$this->markTestSkipped( 'Controller does not use get_context_param().' );
// Controller does not use get_context_param().
}
/**
* @doesNotPerformAssertions
*/
public function test_get_item() {
$this->markTestSkipped( 'Controller does not implement get_item().' );
// Controller does not implement get_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_create_item() {
$this->markTestSkipped( 'Controller does not implement create_item().' );
// Controller does not implement create_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_update_item() {
$this->markTestSkipped( 'Controller does not implement update_item().' );
// Controller does not implement update_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_delete_item() {
$this->markTestSkipped( 'Controller does not implement delete_item().' );
// Controller does not implement delete_item().
}
/**
* @doesNotPerformAssertions
*/
public function test_prepare_item() {
$this->markTestSkipped( 'Controller does not implement prepare_item().' );
// Controller does not implement prepare_item().
}
/**