Intereting Posts
Запрос wpdb php get_var для получения идентификатора для URL-изображения не работает для ID более 999 Пользовательский код загружаемого приложения. Почти готово! WordPress, отправляющий данные с add_action Исключение кавычек при запуске скриптов Есть ли способ рандомизировать и подключить фоновое изображение и заголовок? Добавить эффект скольжения в результаты сортировки ajax post Динамическая репликация пользовательского метабокса в настраиваемом типе сообщений Как выводить содержимое пользовательского типа сообщений из раскрывающегося списка? Отключение фильтрации HTML при импорте в WordPress Multisite Admin Ajax возвращается 0 Поиск пользовательских идентификаторов таксономии по имени «Плагин не может быть активирован, потому что он вызвал фатальную ошибку». Используйте только короткий код с другой страницы Детская тема в рамках детской темы? Укажите пункты подменю Admin?

Как написать тестируемые классы в WordPress

В настоящее время я вношу некоторые изменения в плагин WordPress, который я создал, чтобы сделать его доступным для проверки. Проблема в том, что я не знаю, какие методы я должен написать для тестов. У меня есть методы, которые используют некоторые из этих функций и глобальных переменных:

is_singular() $_GET $_POST $_SESSION 

is_singular , is_page , is_home и другие функции зависят от контекста. Я не уверен, как подделать этот контекст в тесте.

Я попытался передать их как аргументы в методы, но есть некоторые крючки, которые не принимают дополнительные аргументы, поэтому я не могу их передать.

Можно ли просто предоставить их из тестового класса? У меня действительно возникают трудности с модификацией плагина таким образом, что я их не использую.

Есть идеи?

Обновить

Я использую wordpress-тесты и модуль PHP для модульного тестирования. Я провел некоторое исследование по модульному тестированию до того, как начал, и существует практика, когда следует избегать модульных испытаний глобальных переменных.

WordPress далеко не имеет стандартных соглашений для расширения модулей тестирования. Или для структуры расширения вообще.

В настоящее время вы должны:

  • исследование того, как модульная система тестирования по вашему выбору рекомендует работать с глобальными и т. д. для PHP-кода в целом
  • загляните в специальные инструменты WordPress для модульного тестирования, которые начинают появляться, например WP_Mock