Komponententests im WordPress-Backend (is_admin () ist wahr)

Ich habe das auf IRC, Twitter, Slack gefragt – bin erstaunt darüber, wie schwierig es ist, die Antwort darauf zu finden:

Ich habe eine Menge Plugin-Code, der nur ausgeführt wird, wenn is_admin() true zurückgibt, dh wenn der Benutzer das Admin-Panel betrachtet.

Wie ordne ich einen Komponententest so an, dass er sich im Administratorkontext befindet, wenn die Assertions ausgeführt werden?

Solutions Collecting From Web of "Komponententests im WordPress-Backend (is_admin () ist wahr)"

Gemäß diesem Test navigieren Sie mit set_current_screen() zu einer dieser Methoden in der Methode setUp .

Leider ist nichts davon ersichtlich, wenn Sie sich die enorm hilfreiche Referenzseite für get_current_screen () ansehen …

Beispiel:

 < ?php class AxisSetupTest extends WP_UnitTestCase { /** * @covers AxisWP::__construct */ function test_constructor() { // Assert // Admin $this->assertInternalType('integer', has_action( 'admin_enqueue_scripts', array( 'AxisWP', 'add_admin_stylesheet' ) ) ); } public function setUp() { parent::setUp(); $user_id = $this->factory->user->create( array( 'role' => 'administrator' ) ); $user = wp_set_current_user( $user_id ); // This is the key here. set_current_screen( 'edit-post' ); } public function tearDown() { parent::tearDown(); } }