ideasonpurpose/wp-test-stubs

一个用于测试WordPress代码的简单stub和double集合。

v0.2.0 2024-05-26 21:38 UTC

This package is auto-updated.

Last update: 2024-09-07 01:07:59 UTC


README

WP Test Stubs

版本 0.2.0

Packagist styled with prettier

一个用于测试WordPress代码的简单stub和double集合。

Brain MonkeyWP_Mock不同,这是一个非常简单的库。

大多数函数只是空的stub或返回匹配的全局变量。

add_actionadd_filter

add_actionremove_actionadd_filterremove_filter函数将调用记录在全局$actions$filters数组中。每个调用将一个包含hookactionpriorityargs的关联数组推入栈中。检查这些全局数组以查看操作/过滤器是否被正确调用。

任何需要测试的函数应该是公共的,并且能够独立进行测试。

all_added_actionsall_added_filters辅助函数

这两个辅助函数返回全局$actions$filters数组的简化视图,每个添加的钩子都表示为包含两个元素的数组:['hook_name', 'method_name']。这两个并行函数all_removed_actionsall_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提供

IOP Logo此项目正在积极开发并用于Ideas On Purpose的生产环境中。