如何验证在单元测试中注册了meta box?

时间:2020-02-05 作者:Naveen

我目前正在用WordPress进行TDD,在PHPUnit中,我需要测试meta框是否在方法调用中实际注册,我在WordPress中找不到任何函数来实现这一点,所以我试图通过调用global $wp_meta_boxes, 但它回来了null 在PHPUnit测试中调用时。

这个变量是在挂钩上分配的吗?

是否可以提供操作/筛选器名称?

1 个回复
最合适的回答,由SO网友:Naveen 整理而成

这是我所做的一个变通方法,我意识到我们不能用TDD的方式做到这一点。因此,当您面临此问题时,最好先编写代码,而不是编写测试。

所以在我的代码中我添加了这个

add_meta_box( \'meta-box-id\', __( \'My Meta Box\', \'textdomain\' ), \'wpdocs_my_display_callback\', \'post\' );
在测试中$wp_meta_boxes 正在显示已注册元框的数组。

array(1) {
  ["post"]=>
  array(1) {
    ["advanced"]=>
    array(1) {
      ["default"]=>
      array(1) {
        ["meta-box-id"]=>
        array(4) {
          ["id"]=>
          string(11) "meta-box-id"
          ["title"]=>
          string(11) "My Meta Box"
          ["callback"]=>
          string(26) "wpdocs_my_display_callback"
          ["args"]=>
          NULL
        }
      }
    }
  }
}
这并没有改变什么,代码仍然保持不变,但由于这个问题,现在的编写方式有所不同。