Я только начал изучать PHPUnit с Wordpress. У меня есть плагин, который получает данные петиции с сайта change.org. Одна из функций класса администратора проверяет настройки из области администрирования Wordpress, а также вызывает `check_admin_referer() как часть этой проверки.
public function sc_validate_settings() {
//check nonce field is valid
check_admin_referer($this->plugin_name, 'security');
//get new settings
$settings = $this->sc_clean_new_settings();
//validate url
$valid_url = $this->sc_validate_url($settings['petition_url']);
//validate api_key
$valid_api_key = $this->sc_validate_api_key($settings['petition_api_key']);
if ($valid_url && $valid_api_key) {
$this->clean_settings = $settings;
return true;
}
return false;
}
Этот тест PHPUnit проходит, если я закомментирую check_admin_referer()
, но я не могу заставить его пройти, если нет.
public function testValidateSettings() {
$this->assertTrue($this->plugin_admin->sc_validate_settings());
}
Я пытался установить одноразовый номер, действие и _wp_http_referer вручную и через wp_nonce_field()
через $_POST
в тестах/bootstrap.php и в самом тестовом классе. И я немного читал о фиктивных объектах/методах, но не совсем понимаю, как их можно использовать в этом случае.
Я, вероятно, совершенно неправильно понимаю, как все это работает, но любая помощь будет принята с благодарностью!