我正在研究Liquid Messages 插件。它有一些基本的PHPUnit测试,当我运行PHPUnit时,除了一个测试外,其他测试都通过了。It出错:
There was 1 error:
1) GCS_Async_Test::test_class_access
Exception: Invalid GC_Sermons_Plugin property: async
/long/path/wp-content/plugins/lqd-messages/gc-sermons.php:330
/long/path/wp-content/plugins/lqd-messages/tests/test-async.php:10
奇怪的是gc布道。php包含许多与此类似的属性。它们的初始化方式如下:
protected $sermons
protected $taxonomies
protected $async
类的实例附加到属性:
public function plugin_classes()
{
require_once self::$path . \'functions.php\';
// Attach other plugin classes to the base plugin class.
$this->sermons = new GCS_Sermons($this);
$this->taxonomies = new GCS_Taxonomies($this->sermons);
$this->async = new GCS_Async($this);
$this->shortcodes = new GCS_Shortcodes($this);
}
如果我们看一下GCS\\U布道,它类似于GCS\\U Async,因为它扩展了我们看到的另一个类:
class GCS_Sermons extends GCS_Post_Types_Base {
本质上与GCS\\U Async相同:
class GCS_Async extends WP_Async_Task {
如果我们查看这些测试,就会发现针对GCS\\U布道运行的测试与GCS\\U Async相同,但只有GCS\\U Async失败:
function test_class_access() {
$this->assertTrue( gc_sermons()->sermons instanceof GCS_Sermons );
}
function test_class_access() {
$this->assertTrue( gc_sermons()->async instanceof GCS_Async );
}
知道为什么吗?