ideasonpurpose / wp-test-stubs
一个用于测试WordPress代码的简单stub和double集合。
Requires
- php: >=8.0.0
README
WP Test Stubs
版本 0.2.0
一个用于测试WordPress代码的简单stub和double集合。
与Brain Monkey或WP_Mock不同,这是一个非常简单的库。
大多数函数只是空的stub或返回匹配的全局变量。
add_action
和add_filter
add_action
、remove_action
、add_filter
和remove_filter
函数将调用记录在全局$actions
或$filters
数组中。每个调用将一个包含hook
、action
、priority
和args
的关联数组推入栈中。检查这些全局数组以查看操作/过滤器是否被正确调用。
任何需要测试的函数应该是公共的,并且能够独立进行测试。
all_added_actions
和all_added_filters
辅助函数
这两个辅助函数返回全局$actions
和$filters
数组的简化视图,每个添加的钩子都表示为包含两个元素的数组:['hook_name', 'method_name']
。这两个并行函数all_removed_actions
和all_removed_filters
可以用PHPUnit这样使用
$this->assertContains(['hook_name', 'method_name'], all_added_filters());
对于短箭头和匿名函数(闭包),测试它们的返回值。例如,fn() => 5
可以用assertContains(['hook_name', 5]
)进行验证。
is_{$something}函数
所有这些函数都是从相同的模式模拟的:每个函数都将返回与函数同名的一个全局变量的值。由于这些函数通常用于控制流程,能够轻松切换它们的值使得测试系统测试代码的替代路径变得简单,而不需要重构。
要切换任何is
函数,设置一个值,例如
global $is_admin; $is_admin = true;
本地开发
要使Composer检出此仓库的实时克隆而不是从Packagist下载存档,请将repositories键添加到项目根目录的composer.json
文件中
{ "repositories": [ { "type": "git", "url": "https://github.com/ideasonpurpose/wp-test-stubs" } ] }
由IOP提供
此项目正在积极开发并用于Ideas On Purpose的生产环境中。