admin管理员组文章数量:1404585
I tried to perform a test on the WC_VERSION
constant.
The main class :
class WC_Custom_Variable_Products_Dependencies {
/** minimum WooCommerce version required by this plugin */
const MINIMUM_WC_VERSION = '3.7.9';
public function __construct() {
add_action( 'admin_init', [$this, 'check_wc_version']);
}
protected function check_wc_version() {
return version_compare(WC_VERSION, self::MINIMUM_WC_VERSION , '>=');
}
}
The test class :
require_once 'includes/class-wc-custom-variable-products-dependencies.php';
class WC_Custom_Variable_Products_DependenciesTest extends WP_UnitTestCase {
public function setUp() {
parent::setUp();
$this->class_instance = new WC_Custom_Variable_Products_Dependencies();
}
/**
* Tests the protected functions
*
* @param Object $method
* @return bool
*/
private function makeReflection($method) {
$reflection = new ReflectionClass('WC_Custom_Variable_Products_Dependencies');
$protectedMethod = $reflection->getMethod($method);
$protectedMethod->setAccessible(true);
return $protectedMethod->invokeArgs($this->class_instance, ['']);
}
public function test_check_wc_version() {
$result = $this->makeReflection('check_wc_version');
$this->assertTrue($result);
}
}
And PHPunit return :
Use of undefined constant WC_VERSION - assumed 'WC_VERSION'
does this mean in the test, Woocommerce is not loaded?
I tried to perform a test on the WC_VERSION
constant.
The main class :
class WC_Custom_Variable_Products_Dependencies {
/** minimum WooCommerce version required by this plugin */
const MINIMUM_WC_VERSION = '3.7.9';
public function __construct() {
add_action( 'admin_init', [$this, 'check_wc_version']);
}
protected function check_wc_version() {
return version_compare(WC_VERSION, self::MINIMUM_WC_VERSION , '>=');
}
}
The test class :
require_once 'includes/class-wc-custom-variable-products-dependencies.php';
class WC_Custom_Variable_Products_DependenciesTest extends WP_UnitTestCase {
public function setUp() {
parent::setUp();
$this->class_instance = new WC_Custom_Variable_Products_Dependencies();
}
/**
* Tests the protected functions
*
* @param Object $method
* @return bool
*/
private function makeReflection($method) {
$reflection = new ReflectionClass('WC_Custom_Variable_Products_Dependencies');
$protectedMethod = $reflection->getMethod($method);
$protectedMethod->setAccessible(true);
return $protectedMethod->invokeArgs($this->class_instance, ['']);
}
public function test_check_wc_version() {
$result = $this->makeReflection('check_wc_version');
$this->assertTrue($result);
}
}
And PHPunit return :
Use of undefined constant WC_VERSION - assumed 'WC_VERSION'
does this mean in the test, Woocommerce is not loaded?
1 Answer
Reset to default 0return defined('WC_VERSION');
should fix since defined()
accepts a string as parameter.
https://www.php/manual/en/function.defined.php
If you use:
require_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
adjusting your path if the installation is in a subrdir you load all the WP environment including active plugins etc
本文标签: plugin developmentPHPUnit Testing and woocommerce Constant
版权声明:本文标题:plugin development - PHPUnit Testing and woocommerce Constant 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744840324a2627885.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论