PHP单元测试和WooCommerce常量

时间:2020-01-13 作者:Younes.D

我试着在WC_VERSION 常数

主要类别:

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 , \'>=\');
    }
}
测试类别:

 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);
    }
}
和PHPunit返回:Use of undefined constant WC_VERSION - assumed \'WC_VERSION\'这是否意味着在测试中没有加载Woocommerce?

1 个回复
SO网友:Andrea Somovigo

return defined(\'WC_VERSION\'); 应自修复defined() 接受字符串作为参数。https://www.php.net/manual/en/function.defined.php

如果您使用:require_once($_SERVER[\'DOCUMENT_ROOT\'].\'/wp-load.php\'); 调整路径如果安装在子RDIR中,则加载所有WP环境,包括活动插件等

相关推荐

pingbacks testing

关于新wp安装(3.0.4)中PBs的功能测试,我有几个问题:发布帖子时是立即发送pingback,还是将其安排为cron作业?如果后者正确,作业多久运行一次,我可以手动触发它吗?除了将“尝试通知文章中链接到的任何博客”设置为“开”,当然还有帖子内容中指向另一个博客的链接之外,还有其他关于发送PBs的术语吗?(例如,发件人的帖子应该是公开的而不是私有的吗?博客应该是非私有的吗?)出站链接应该放在帖子内容中,还是可以放在帖子的自定义字段中,以便发送PB?如果我的博客中没有发送或接收PBs,那么调试和检测问题