1
测试钩子回调
我正在使用TDD开发插件,而我完全无法测试的一件事是...钩子。 我的意思是,可以测试钩子回调,但是如何测试钩子是否实际触发(自定义钩子和WordPress默认钩子)?我认为有些嘲笑会有所帮助,但我根本无法弄清我所缺少的内容。 我使用WP-CLI安装了测试套件。根据这个答案,init钩子应该触发,但是……它不会触发。此外,该代码在WordPress中有效。 根据我的理解,引导程序是最后加载的,因此不触发init是有意义的,因此剩下的问题是:我应该如何测试是否触发了钩子? 谢谢! 引导文件如下所示: $_tests_dir = getenv('WP_TESTS_DIR'); if ( !$_tests_dir ) $_tests_dir = '/tmp/wordpress-tests-lib'; require_once $_tests_dir . '/includes/functions.php'; function _manually_load_plugin() { require dirname( __FILE__ ) . '/../includes/RegisterCustomPostType.php'; } tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' ); require $_tests_dir . '/includes/bootstrap.php'; 经过测试的文件如下所示: class RegisterCustomPostType { function __construct() { add_action( 'init', array( $this, 'register_post_type' …