我想测试我创建的自定义query_var。当我运行网站时,query_var是正确的。但是,当我使用PHPUnit进行测试时,似乎PHPUnit看不到query_var?
我所做的是以下内容:
public function test_correct_category_name() {
$this->go_to('/category/cars');
$category_name = get_query_var( 'category' );
$this->assertEquals( $category_name, 'cars');
}
同样,这在打开网站并输出echo get_query_var( 'category' );
时效果很好,然后显示cars
;
你是怎么做到的?
答案 0 :(得分:0)
我找到了线索的所在。看看这个StackOverflow帖子:https://wordpress.stackexchange.com/questions/71406/is-there-a-flowchart-for-wordpress-loading-sequence特别是带有动作序列的流程图。
我发现在测试中我必须使用set_query_var( 'category', 'cars' );
设置query_var
所以我可以测试一下。
在我的Category类中,我在template_redirect
初始化它,以便实例化$ wp_query。在$ wp_query中,query_vars是可访问的。现在,该类在调用时不会出错:get_query_var
。
哇,这花了我几天才弄明白......