[wp-trac] [WordPress Trac] #53651: unit test for wp_removable_query_args

WordPress Trac noreply at wordpress.org
Mon Aug 16 17:38:08 UTC 2021


#53651: unit test for wp_removable_query_args
------------------------------+------------------------------
 Reporter:  pbearne           |       Owner:  (none)
     Type:  enhancement       |      Status:  new
 Priority:  normal            |   Milestone:  Awaiting Review
Component:  Build/Test Tools  |     Version:
 Severity:  normal            |  Resolution:
 Keywords:  needs-unit-tests  |     Focuses:
------------------------------+------------------------------

Comment (by jrf):

 I've just had a look at the PR and at the function.

 The function does not actually contain any logic, so there isn't much to
 test in reality.

 I agree with @johnbillion that checking the exact content of the array in
 the first test does not add value.
 Just checking that the return value of the function is an array and that
 that array is not empty should be sufficient.
 The actual values within the array should not be tested like this.

 I also agree with @SergeyBiryukov that testing that the filter ''gets
 applied'' is a good idea, though I don't agree that the filter needs to be
 removed and the output checked again after. That is something which should
 be tested in the Hooks logic, not here.

 I also don't think we should care much about what the filter returns as
 that is defined within the test. We just need to check that the returned
 filtered value complies with what the test filter does. That confirms that
 the filter has been ''applied''.
 Testing whether the function doing the filtering is returning the expected
 type and is not empty and such, doesn't add any value as we don't control
 outside filters, so testing this doesn't actually yield any extra code
 security.

 I would suggest simplifying the filter test to this (also note the test
 function name change):
 {{{#!php
 <?php
 public function test_wp_removable_query_args_applies_filter() {
         add_filter( 'removable_query_args', static function( $args ) {
 return array(); } );

         $this->assertSame( array(), wp_removable_query_args() );
 }
 }}}

 All filter adjustments get automatically reverted via the abstract
 TestCase `tear_down()` method anyway, so we don't have to worry about
 using a closure which cannot be removed via `remove_filter()` in the
 tests.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/53651#comment:6>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list