web-dev-qa-db-fra.com

Comment créer un test qui appelle is_front_page dans phpunit?

J'utilise WP_UnitTestCase mais dans mon code, j'ai cette condition. is_front_page dont je ne sais pas comment simuler cela dans PHPUnit

Ceci est le morceau de code que j'ai

elseif ( is_front_page() ) {
    // logic
}

Et voici comment je vais à une page

$this->go_to( $this->post_obj->get_permalink() );

Comment dire à phpunit qu'il s'agit de la page d'accueil?

5
toy

La is_front_page() appelle wp_query::is_front_page() . Si vous faites défiler l'écran vers le bas pour voir la source , vous verrez le code que vous souhaitez déclencher:

elseif ( 'page' == get_option( 'show_on_front') && get_option( 'page_on_front' ) && $this->is_page( get_option( 'page_on_front' ) ) )
        return true;

Pour remplir cette condition, il vous suffira de faire cela dans le code pour configurer le test:

update_option( 'show_on_front', 'page' );
update_option( 'page_on_front', $post_id );
4
J.D.