Unit Tests: implement setUpBeforeClass() and tearDownAfterClass() on WP_UnitTestCase. Use late static binding (plus a gross fallback for PHP 5.2) to check if wpSetUpBeforeClass() or wpTearDownAfterClass() exist on the called class, and then call it and pass a static WP_UnitTest_Factory instance via Dependency Injection, if it exists.

This makes it way easier to add fixtures, and tear them down, without needing to instantiate `WP_UnitTest_Factory` in every class - removes the need to call `commit_transaction()` in each individual class.

See #30017, #33968.


git-svn-id: https://develop.svn.wordpress.org/trunk@35186 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Scott Taylor
2015-10-15 04:43:37 +00:00
parent e1a09eff54
commit 16d98ebf73
17 changed files with 97 additions and 158 deletions

View File

@@ -7,19 +7,8 @@
*/
class Tests_AdminBar extends WP_UnitTestCase {
static function setUpBeforeClass() {
WP_UnitTestCase::setUpBeforeClass();
require_once ABSPATH . WPINC . '/class-wp-admin-bar.php';
}
function setUp() {
parent::setUp();
$this->current_user = get_current_user_id();
}
function tearDown() {
wp_set_current_user( $this->current_user );
parent::tearDown();
public static function setUpBeforeClass() {
require_once( ABSPATH . WPINC . '/class-wp-admin-bar.php' );
}
/**