10quality / wpmvc-addon-testsuite
WordPress MVC (WPMVC) 框架扩展的测试套件。
dev-main
2023-02-10 22:23 UTC
Requires
- php: >=5.4.0
- 10quality/wpmvc-addon: 1.0.*
- 10quality/wpmvc-core: >=3.1.0
Requires (Dev)
- phpunit/phpunit: 9.*
This package is auto-updated.
Last update: 2024-09-11 01:59:51 UTC
README
安装
使用 required-dev
作为 composer 命令安装
composer install 10quality/wpmvc-addon-testsuite --dev
测试用例类
使用以下替代默认的 PHPUnit 测试用例
use WPMVC\Addons\PHPUnit\TestCase; class MyTest extends TestCase { // Your test methods }
此类将允许您使用以下断言方法
示例
use WPMVC\Addons\PHPUnit\TestCase; class MyTest extends TestCase { public function testAction() { // Run do_action( 'init' ); // Assert $this->assertDidAction( 'init' ); } }
测试您的插件
您的插件主类需要 WordPress MVC 主类(桥梁)实例才能正常工作。`TestCase` 类包含 `getBridgeMock()` 方法,允许您通过模拟桥梁类来测试您的插件。
示例
use WPMVC\Addons\PHPUnit\TestCase; use MyAddon; class MyAddonTest extends TestCase { public function testInit() { // Prepare $bridge = $this->getBridgeMock(); $addon = new MyAddon( $bridge ); // Run $addon->init(); // Assert $this->assertAddedAction( 'init' ); $this->assertHasRegisterScript( 'my-js' ); } }
上面的示例测试了插件类 `MyAddon` 中的 `init()` 方法,它接收初始化为模拟的 `$$bridge`。示例断言在方法调用期间已添加动作钩子和已注册脚本。
您可以模拟 `Bridge` 以便自己使用
use WPMVC\Addons\PHPUnit\TestCase; use WPMVC\Addons\PHPUnit\Mocks\Brige; use MyAddon; class MyAddonTest extends TestCase { public function testInit() { // Prepare $bridge = $this->getMockBuilder( Brige::class ) ->disableOriginalConstructor() ->getMock(); $addon = new MyAddon( $bridge ); // Run $addon->init(); // Assert $this->assertAddedAction( 'init' ); $this->assertHasRegisterScript( 'my-js' ); } }
重置测试套件数据
您可以通过在 `setUp` 或 `tearDown` 方法中调用函数 `wpmvc_addon_phpunit_reset()` 来重置测试套件数据。
模拟的 WordPress 核心函数
以下 WordPress 核心函数被模拟并通过 composer 包含
__
_e
add_action
add_filter
add_query_arg
add_submenu_page
admin_url
apply_filters
do_action
esc_attr
esc_html
esc_html_e
esc_url
get_filesystem_method
get_locale
get_stylesheet_directory
home_url
request_filesystem_credentials
sanitize_text_field
site_url
submit_button
wp_enqueue_script
wp_enqueue_style
wp_register_script
wp_register_style
WP_Filesystem
模拟的 WordPress 核心常量
如果它们未定义,以下常量将通过 composer 模拟
ABSPATH
模拟的 WordPress 核心类
以下 WordPress 类被模拟并通过 composer 包含
WP_Filesystem