mirror of
git://develop.git.wordpress.org/
synced 2025-01-29 10:38:22 +01:00
a92437e394
In [51844], the test wrapper methods were not being called due to the names not being recognized as supported PHPUnit "hook" names for fixtures. This commit: - Fixes the problem by adding extra camelCase wrappers to the `WP_UnitTestCase` to call the methods in the right order. - Adds wrappers for the `assertPreConditions()` and `assertPostConditions()` fixture methods to make the backport feature complete for the fixture wrappers. Test wrapper methods call fix: By adding method overloads for the PHPUnit native camelCase fixture methods and letting those call the (camelCase) parent method first and only calling the snake_case fixture methods after, the snake_case methods can be supported and the typical run order safeguarded. As not all test classes will have declared snake_case fixture methods, the snake_case fixture methods are also declared in the `WP_UnitTestCase`. Why? This prevents having to wrap these method calls in `method_exists()` conditions checking for the existence of the snake_case methods in an unknown Test child class. And with the normal inheritance rules in combination with calling the method using `static`, the right method will be called anyway without fatal "calling undeclared method" errors. Note: While it will be rare, there ''may'' be cases where a test class does not adhere to the normal execution order for fixtures, i.e. for the setup methods, parent first, own code second; and for the teardown methods, own code first, parent second. For example a test class which has "some code - `parent::setUp()` call - some more code" in their `setUp()` method. In those (rare) cases, the execution order of the code will now be changed, which may have side-effects. This rare case will be identified in the dev note. Follow-up to [51844]. Props bjorsch, swissspidy, jrf, hellofromTonya. See #53911. git-svn-id: https://develop.svn.wordpress.org/branches/5.4@51865 602fd350-edb4-49c9-b593-d223f7449a82