我是Wordpress中单元测试的新手。我使用PHP单元和Wordpress tests 但是我在访问插件中设置的插件选项时遇到了问题。
class nrw_pg{
private $twitter_id;
public function __construct(){
$options = get_option(\'nrw_pg_options\');
$this->twitter_id = (!empty($options[\'nrw_pg_options_twitter_id\'])) ? $options[\'nrw_pg_options_twitter_id\'] : \'\';
}
public function get_tweets(){
$result = null;
$protocol = is_SSL() ? \'https://\' : \'http://\';
$result = wp_remote_get($this->protocol . "api.twitter.com/1/statuses/user_timeline.json?screen_name=". $this->twitter_id."&count=11&exclude_replies=true");
return $result;
}
}
$GLOBALS[\'nrw_pg\'] = new nrw_pg();
从浏览器访问时,一切都很顺利。但是在单元测试中,它似乎不知道我设置的选项。
require_once(\'D:\\web_files\\tester\\wordpress\\wp-content\\plugins\\nrw_pg\\nrw_pg.php\');
class Nrw_Pg_Test extends WP_UnitTestCase {
public $plugin_slug = \'nrw_pg\';
public $options;
public function setUp() {
parent::setUp();
$this->nrw_pg = $GLOBALS[\'nrw_pg\'];
}
public function test_get_tweets(){
$this->assertNotNull($this->nrw_pg->connect());
}
}
除了wp测试配置之外,还有什么需要设置的吗。php和这里提到的其他东西:
https://stackoverflow.com/questions/9138215/unit-testing-wordpress-plugins 为了让这一切顺利进行?
如果添加了特定的过滤器,其他事情似乎也在进行测试。但这些选项似乎尚未初始化。有什么想法吗?