J'ai demandé ceci sur IRC, Twitter, Slack - je suis tout à fait étonné de la difficulté à localiser la réponse à cette question:
J'ai un tas de code de plugin qui ne fonctionne que lorsque is_admin()
renvoie true
, c'est-à-dire lorsque l'utilisateur regarde le panneau d'administration.
Comment organiser un test unitaire tel qu'il se trouve dans le contexte d'administration lors de l'exécution des assertions?
Selon ce test , vous utilisez set_current_screen()
pour naviguer vers un de ceux-ci dans la méthode setUp
.
Hélas, rien de tout cela n'apparaît si vous regardez la page de référence extrêmement utile pour get_current_screen () ...
Exemple:
<?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();
}
}