PHPUnit 为空的 Wordpress get_query_var
Wordpress get_query_var with PHPUnit empty
我想测试我创建的自定义 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
;
你是怎么做到的?
找到线索了。看看这个 Whosebug post: https://wordpress.stackexchange.com/questions/71406/is-there-a-flowchart-for-wordpress-loading-sequence 特别是上面有动作序列的流程图。
我发现在测试中我必须将 query_var 设置为 set_query_var( 'category', 'cars' );
所以我可以测试一下。
在我的类别 class 中,我在 template_redirect
上初始化它,以便实例化 $wp_query。在 $wp_query 中可以访问 query_var。现在 class 在调用时不会报错:get_query_var
.
哇,我花了好几天才弄明白..
我想测试我创建的自定义 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
;
你是怎么做到的?
找到线索了。看看这个 Whosebug post: https://wordpress.stackexchange.com/questions/71406/is-there-a-flowchart-for-wordpress-loading-sequence 特别是上面有动作序列的流程图。
我发现在测试中我必须将 query_var 设置为 set_query_var( 'category', 'cars' );
所以我可以测试一下。
在我的类别 class 中,我在 template_redirect
上初始化它,以便实例化 $wp_query。在 $wp_query 中可以访问 query_var。现在 class 在调用时不会报错:get_query_var
.
哇,我花了好几天才弄明白..